Au6tfB/ia A $4 75 He* ZbsImM HZ $ 650
Singapore SS9 45 Hong Kong H $2350
Malays* M S9 4S Sweden 30:*$£K
$2.95
USA
MICRO JOURMN.
OS-9 Atari Amiga Mac S-50
6800 €809 68008 68000 68010 68020 68030
The Magazine for Motorola CPU Devices For Over a Dtcadtf
This issue; "C" User Notes p.6
Motorola 88000 RISC p. 25
Logically Speaking p.13
Mac Watch p.41
Position Independent & Reentrant Code for
the 68000 Family p. 45
„ A SK1KK AiarfAmlfli
Uo-9 FLEX Maclnloih J\ lUirCont'ifatorjoomd And Lots More!
The problem wilh mosl real-time operating syslcms is
simple, Ihey're nol an integrated so^ulitm. You end up dealing
wilh a multitude of suppliers for languages, compilers, debug-
gers and olhcr important development lools. And when
something docs «o wrong, il con be a frustrating experience
laying lo slraighlen oul ihe mess.
Why Not Tiy the
Microware One-Stop
Total Solution f
Microware's OS- L ) Real-Time
Operaling Syslem is a tola I inte-
grated software syslrm, not jusl
a kernel. V\fe offer an extensive
sel of development UxjIs, lan-
guages, I/O and Kernel oplions.
And this total integrated solution
is entirely designed, built and
supported by the same expert
Mkroware team.
M»r rrsMoAr * *i ti*K*.l*HOfl l».K*eni.ifk ol
Mm rowan* Sv^ifiAt <irm*,m<;)M
OS .I lii ii U,\i ktikii k \d Mk kmm mv
UNIX ts jo^ktiwrk d M * I
VAXe»Jlr.uk«tifcirWL>U
The OS-9 Success Kit
A Total Integrated Solution for Your Next Project
Development Tools:
Languages:
CSourceLtivfiiOebuoacr
c*
Symbol Debugger
Basic
Syslem Sidle Debugger
Rascal
uMACS Text Editor
Fortran
Beclrgrac Mall
Ada**
Communicaiions
Assonbler'
Super Shell
Kernel Options:
I/O Options:
SCSI. SASI&S MO Disks
MMU {Security Proieclion) Support
3-. 5», 8-mch Diskettes
Matt Coprocessof Suppori
Magnetic Tape
% mskkntw UNIX *«tffli«vaila5to
Ethernet* TCP/ IP
"VAXNwted
Aicnet- OS-9 Net
Modularity Lets YOU Choose fust What You Need.
The modular design of OS-9 allows our OfX.»mling Syslem
lo adapl as your requirement change. OS-9 can support a
complete <>peclrum of applications — from emr)edded ROM-
based code in board-level prcxlut is all the way up lo large-
scale syslems.
Support is Part
of the Package.
Microware is proudly selling
Ihe industry's standard for cus-
tomer suppori. You'll find pro-
fessional and comprehensive
technical documentation and a
Customer Holline staffed by
courteous and authoritative soft-
ware engineers.
So slop messing with sim-
ple kernels and in dependent
suppliers. Call Microware loday
and find oul more about the
"One-Slop Integrated Solution"
with OS-5!
— Ttuctowtc^- OS-9
Microware Systems Corporation
I9U0 N.W.I 14th Strvt?t
Des Moines, Iowa 50322
Phone: 515/224- 1929
Western Regional Office
4401 Great America Parkway
San la Clara, California 95154
Phone: 408/98OO201
Mien? ware Japan Ltd.
41-19 1 loncho 4-Chome
FunabashiCity
Chiba 273, Japan
Phone: 0474 (22) 1747
Mustang -020 Mustang-OS Benchmarks yi t*
tBMAT?300XBkSyt3 9,7
ATOTTWOUMXPCMOlO 7*
DfiC VAX 11/7B0UNDC Boti^O 3j6
DBCVAXli/750 ' " 5.1
6»08OS-9ffK9MhA 114
63000 OS-9CBK 10 Mh* 6J
HUSTANG-H U00S OSS 4$K 10 Nkt »J
MVSTANO^M 64920 OS* MJC M Mkt 22
UVSTAAG429 *m*0 MC«9*8l U*fLEX 16 Nkt 1*
laalaO
faf(M>;l<WWtt;~Qi
EAlmta* MIPS . >CUSrANC-»2» ^ 43 MI!*,
Bui « to a . If MIFS: Motorola Spaa
Ri^«3
4,3
31
94
44
«J
0M
132
OS-9
OS-5 Pwfcasfeaial Vcr
jasaiw
*toclw*t»CC<ma>W
Baak09
KXJ40
CQnqafe
SOOjOO
69000 OngmMff (tNwo *d± S 100.00)
10000
Fortran 77
7SOOO
Mkiuwciv focal
SOOjOO
OdcpmAPwc^
900,00
Sryio-Qr.pt
49540
5*>io>Spett
195.00
Sl>ioMerr
17540
S*>to-O*f* -5 $*U-Mc» ae
69540
PAT%/C«u»
22940
JUST-ATaoarr*
79,95
pat/jus rcanbo
149 50
W^w^Caeabalow)
99540
COM
12540
UnlFLEX
i;o7LEX<0B020wr)
54300)
SowroGAwr
15040
Sol»*fe»a»
20040
BAStOPtoZanfOa
30040
CC<ne>to
350.00
COBOL
75040
CMOOGM vAvro
1 00 00
7W006M •*»«•«
toaoo
XTALK(«aA4j
9955
Gon A«aan*Aar
5040
fata* 71
4150.00
Jcatpwr* (n kJow)
99540
Steals MUJTANOMTar* ahJppx<i 113 Mhz.
AAJ fn 16j6 Mha 66TJ&>
37540
AiSJfc 16.6 Mha 6B881
37340
A4J for M Mhi 6*X20>RAM
75040
lfilNnaapRSB?
35540
RiKpsn 1 <r 2 Aifcr*r Co* bolov J15222 Ai%atr
16540
Each cud mppM 4 oddiriond tee pxvts
(wtal of 36 anal pom MpfUfed)
60lutf\ralkJ GOaard
39140
tsu 3 fl2)0 bser Ws/TVn^ c^Apa,
6 pnpiofS linMMch. "pw* buffer
dawxks vavoi ta mch pmp.
iiuuyfB immiu
7540
inn far txrib dip and PDA dttkaa A t
p^wJiwJ iBDiy ma «p to 31 2K OHAM
S8CAN
47540
aaasrCaa b*^m the ryaasm tad
AAOFBT andifkd to*a»»paMfe* LAN. Sbc apio opkaaJ . <*A
UlNauft»v»4i~tt
12D40
&fm»laitotMi*miiMWQMnalt*vdi*m J19540
Spockl for a-apitt MUST ANO-0W" iy«ott bu)c* * Safrxr*
$69540 SAVB 5300 00
Scal*att DtarOuati
Ail MUSTANO-Oar*' ijiv tad kxmt
Pattern on all latod aoltwan: 10-70%
•ria* ia qaotos. OwzauB ■pfi'y after the safe
Mustang Specifications
123 MKi (opdoml 16.6 Mhz available) MC68020 full 32- hit wide path
32- bit wido data and tddran buses, on* multiple i<**
cm dup (ACtnmux) cache
object eodo cxsrspalible with all 68XXX family processor*
enhanced idRxueum id • msib co-fnoasMV intcrf see
68881 math bi-apood fliwii^ potni c«vpiw*anr (optional)
dims eiiotaion of f\i!l 68020 tn*xn>c*ion act
full avopor IEEE P75d. draft 10.0
transcend cxtfaJ «nd other ademific math (unfliona
2 Megabyte of SIP RAM (5i2* 32 bii ocganiimiicn)
up to 2SSK trytea orEFROM (64 x 32 bits)
4 Asynch/roouc aerial I/O porta standard
optional to 20 aenal pons
aundaid RS 232 interface
oprinni] net weak imerftoc
buffered 8 bit parallel port (1/2 MC68230)
Centronics type pinout
cJipansion cMmactor for I/O devices
16 bit data path
256 byte addjou space
2 tnienupt inputs
clock and cunlrol signals
Motorola 1/OOjanncJ Modules
timeof day cl^^aiaidar w/battay backup
corftroUer for 2, 5 1/4" floppy disk drives
single or double aide, single or double density
35 to 80 track selectable (4S-96 TPT)
SASI intofacs
programmahio penodic jnU^rupl gomraks
tnu^rupt rate from micro- aeconda to seconds
highly accurate lime base (5 PPM)
5 hit sense switch, readable by cto CPU
Hardware tingle- step capability
Theae hi-apeed 68020 syauans axe present) y working at NASA, Atomic Energy Commission,
Covemmcnl Agencies u well as Universities, Business, Laba, and t*her Critical Applications
Centers, worldwide, where speed, math crunching and multi-user, multi-tasking UNIX C level
V compatabiliiy *&& low owt is a must.
Don't be mislead!
ONLY Data-Comp
delivers the Super
MUSTANG-020
Only the "PRO" Version
ofOS-9 Supported!
This is HEAVY DUTY
Country!
|Fwallfnh«tjm»w«taf«tcfleff.if400tf«ft^on / ourn
1 o*1 68XXX SBC Musi b* worWng propwty and *
LOOrflpteta) wnh si aottwaf* , cabfaa and documentBton. .
C& tor mora, mfof matton
Price List:
Mustang -020 SBC
$2490.00
Cabinet w/twiiching PS
$299.95
5"-80 track floppy DS/DD
$269 95
Floppy Cable
$39 95
OS- 9 68K Profesaicnal Version
$850 00
C Compiler ($500 Value)
N/C
Winchester Cshle
$39.95
Winchester Drive 25 Mbyte
$895.00
Hard Disk Controller
$395.00
Shipping USA UPS
$20.00
UnifLEX
Leas
$100 00
MC68W1 f/pmaih processor
Add
$275 00
16 67 Mhx MC68020
$37500
16.67 Mhi MC6SS81
$37500
20 Mhz MC68020 Sys
$750,00
Note all 68881 chips work with 20 Mhi Sys
Total:
$5299.80
NEW LOWER PRICES
25 Mbyte HD |32^^H $3749.80
85 Mbyte HD $524&gTJ $4548.80
Note: Only Professional OS-9 Now Available
(68020 Version) Includes ($500) C Compiler -
68020 A. 68881 Supported - For UPGRADES
Write or Call for Professional OS-9 Upgrade Kit
Data-Comp Division
G-i iT^y^"^ i ^ Pocade of Quality Service" ^
*J ^^ Systems WoildWlde
Computer Publishing, Inc. 5900 Cassandra Smith Road
Telephone 61 5 842-4601 - Tetex 510 600*6630 Hixson. Tn 37343
68 Micro Journal
February 89
A Member of the CPI Family
68 Micro
Journal
/0 Years of Dedication to Motorola CPU Users
6800 6809 68000 68010 68020
The Originator of "DeskTop Publishing™"
Publisher
Don Williams Sr.
Executive Editor
Larry Williams
Production Manager
Tom Williams
Office Manager
Joyce Williams
Subscriptions
Cheryl Hodge
Contributing & Associate Editors
Ron Anderson Dr. EM. "Bud" Pass
Ron Voigts Art Weller
Doug Lurie Dr. Theo Elben
Ed Law Sl Hundreds More of Us
Software User Noces
Logically Speaking
Interfacing the 88000
Mac-Watch
^Writing Position Independent & Reentrant Code
" for thr 68000 Family 45 Van Sickle £*<
Bit Bucket 51
COMPUTER
PUBLISHING, INC.
44 Over a Decade of Service "
"WorW
Wide"
68 MICRO JOURNAL
Computer Publishing Center
5900 Cassandra Smith Road
PC) Box 849
Hixson.TN 37343
Phone (615) 842-4600 Telex 510 600-6630
Copyrighted © 1987 by Computer Publishing. Inc.
68 Micro Journal is the original" DeskTop Publishing" product and has
continously published since 1978 using only micro-computers and
special "DeskTop*' software. Using first a kit built 6800 micro-com-
puter, a modified "ball" typewriter, and "home grown" DeskTop Pub.
lishing software. None was commercially available at that time. For
over 10 years we have been doing "DeskTop Publishing"! We origi-
nated what has become traditional "DeskTop Publishing" .' Today 68
Micro Journal is acknowledged as the "Grandfather" of "DeskTop Pub
lishing" technology.
( ^Contribute Nothing * Expect Nothing" dmw isga )
68 Micro Journal (ISSN 0194-5025) is published 12 times a year by
Computer Publishing Inc. Second Class Postage paid at Hixson, TN.
and additional entries. POSTMASTER: send address changes to 68
Micro Journal. POB 849, Hixson. TN 37343.
Subscription Rates
1 Year $24.50 USA, Canada & Mexico $34.00 a year.
Othcis add $12.00 a year surface. $48.00 a year Airmail. USA
funds. 2 years $42.50. 3 years $64,50 plus additional postage
for each additional year.
Items or Articles for Publication
Articles submitted for publication must include authors name, ad-
dress, telephone number, date and a statement that the material is
original and the properly of the author. Articles submitted should be
on diskette. OS-9. SK'DOS. FLEX, Macintosh or MS-DOS. All
printed items sliould be dark type and satisfactory for photo- reproduc-
tion. No blue ink! No hand written articles - please! Diagrams o.k.
Please - do not formal withspacesany text indents, charts, etc. (source
listing o.k.). We will edit in a 11 far matting. Text should fall flush left and
use a carriage return only to indicate a paragraph end. Please write
for pee authors guide.
Letters & Advertising Copy
Letters to the Editor should be the original copy, signed! Letters of grip
as well as praise are acceptable. We reserve theright to reject any letter
or advertising material, for any reason we deem advisable. Advertis-
ing Rales: Commercial please contact 68 Micro Journal Advertising
Department. Classified advertising must be non -commercial. Mini-
mum of $15.50 for first 15 words. Add $.60 per word thereafter. No
classifieds accepted by telephone.
February 89
68 Micro Journal
' PAT - JUST S
PAT Cm m
With 'C Source!
I
$229.00 i %©fl®01fi)
1,200 Tito,
A Division off
c p
S.E.
Media-
5900 CAiundtt Smith Rd
Hvu0D,To 37W3
ITckgbar 615 842-4*09
Tekx5l060O4630
PAT FROM S. E. MEDIA -- A FULL FEATURED SCREEN ORIENTED TEXT EDITOR
with all the best of PIE. For those who swoie by and loved PIE, this is for YOU! All PIE
features & much more! Too many features to list. And if you don't like ours, change or add
your own. C source included. Easily configured to your CRT terminal, with special configuration
section. No sweat!
68008 - 68000 - 68010 - 68020 OS-9 68K $229.00
PAT1JUST
Special $249.00
JUST
JUST from S. E. MEDIA - - Text formatter written by Ron Anderson; for dot matrix
printers, provides many unique features. Output formatted to the display. User con-
figurable for adapting to other printers. Comes set-up for Epson MX80 with Graflex. Up
to 10 imbedded printer control commands. Compensates for double width printing.
Includes normal line width, page numbering, margin, indent, paragraph, space, vertical
skip lines, page length, centering, fill, justification, etc. Use with PAT or any other text
editor. The ONLY stand alone text processor for the 68XXX OS-9 68K, that we have
seen. And at a very LOW PRICE! Order from: S.E. MEDIA - see catalog this issue.
68008 - 68000 - 68010 - 68020 OS-9 68K
V With 'C f source $79.95 J
$8 Micro Journal February '89
©IL®©H ©HIP ©IPH©n<&IL
SCULPTOR
From the world's oldest
& largest OS-9 software house!
CUTS PROGRAMMING TIME UP TO 80%
6809/68000-68030 SaV6 90%
SCULPTOR-a 4GL - Only from S.E. Media at these prices. OS-9 levels one and two (three GIMIX) 6809,
all 68XXX OS-9 standard systems. Regular SCULPTOR versions 1.4:6. One of if not the most efficient
and easy to develope DBMS type systems running under OS-9! A system of flexible keyed file access that
allows extremely fast record and data retrieval, insertion and deletion or other programmed modifica-
tions. Access by key or in ascending order, very fast. The system provides automatic menu generation,
compilation and report generation. Practically unlimited custom input format and report formatting. A
rich set of maintenance and repair utilities. An extremely efficient development environment that cuts
most programming approximately 80% in development and debugging! Portable, at source level, to MS-
DOS, UNIX and many other languages and systems.
Standard Version: 1.6 6809 - $1295.00
68000 $1295.00
68020 $1990.00
f "
Due to a "Special One Time" Purchase, We Are
Making This Savings Offer. Quantities Limited!
Once this supply is gone the price goes back up!
System OS-9: 6809/68000-68030
•Regular $1295,00
ONLY
$99.95
S.E. MEDIA
POB 849 5900 Cassandra Smith Road
HIXSON, TN 37343 61 5 842-4601
Telex 510 600-6630
AVE - WHILE SUPPLIES LAST!
February B9
6B Wcro Journal
'!ch-pfwnc: (6ts)S42-46oo South 'East ftfedia
QS-9, ilni'J OEX, 'J L'LX, S'K ''A \S
.'/.' ffease Specif n 'your i ipemtiiM System ami 'Disk
Tefaa 5HkitXhb.H)
Sculptor
Full OEM & Dealer Discounts Available!
M SCULPTOR SYSTEM
So*rtc» tomtorm ****** >*»» >'nMm k.j^
«Mi 411 .davit Mm apjMpaaai* «*n
BKMlCdRl *fl U MMdi what Vl4*- Am b*a*
a «m4 can ha *hb**d n m* * *•* *****
AN ESTABLISHED UADtR
THf PACKAGE
|J|.
I MmjMtrm
Orffv IWikfv
DATADCTK5NARV INDEXING TECHNIQUE
l*h Kb frm haw ixw 'f mpf w«d ^KdplU mtlrttm f B »ff «ln hi
Unc* h«i w#i laa d hat k hum an *wt JmNHnj Luiitrirtvt
Facto
Features
INPUT DATA VAI JDATKDN
l»PUl Ait* rrm, U wMiM t tfw
lavwfe
1 ■*•* DwikW»nfc.*<la»a<**onjry
DATA FILE STRUCTURE f«w»i*.c»s*jlo0r
DhicHMLlMdWt^mo^ ARfTHM£7)C OPERATORS
SYSTEM INDEPENDENCE
Scufrajoc . nniiMifin wnydfcw
PTMH OOfflM^ayMflaajlt ■Knlflrl| h .
VMS th* i>a m i ^ <>Mi^n^p o imhi>i*>*f«*nfjw*
r~
malptrw
inhrw^-j
APPLICATION P0RTA81JTY
Sculptor for 68020
OS^9 & UniFLEX
$995
RELATIONAL CURATORS
i bmtm fen - ■■
fTlIlMMlt
I I -P» .,•!.(
SPECIAL FEATURES
FuUdjtoflrthimrfe
ti-ho IMM1 *» P
MAXIMA AND MINNA
ItObyvk
3Mb
»Mt«adUi^ 17767 M*»
1 E767
LpwtV lb,
16
Iftffamutffe
OaKhiatH
ikff nf tf i' i tfw l«naj*y and ifprnanha* ^ «* «mu*» fll_
%irif*jf la thwaJy ai «mi m :mi ?thtirtin
MUSTANG-020 Users . Ask For Your Special Discount!
r
■~i
MTJSTANG020
*$1.990$398 $795
*$1.295 $259 $495
PC/XT/ AT/MSDOS $695 $139 $299
MUSTANG-08 *$ 1.295 $259 $495 Call or write for prices on the following systems.
XENIX SYS III & V. MS-NET. UNIX SYS 111 A V. ATARI 03-9. B8K. UNOS. UI.TRIX/VMS {VAXRKGALL STRIDE. ALIOS. APRICOICT. ARETE. ARM
STRONG, BL£ASDAL£. CHARLES RIVERS. GMX. CONVERGTECH. DEC. CIFER. EQUINOX. GOULD. 111*. HONEYWELL. IBM. INTEL. MEGADATA.
MOIDROLA. NCR. NIXDORK, N.STAR. OLIVETTI /AT&T. ICL. PERKINS ELMER. PHILLIPS, PIXEL. PLESSEY, PTXXUS. POSITRON. PRJME. SEQUENT.
SIEMENS. SWTPC, SYSTIME. TANDY. TORCH, UNISYS. ZYLOG. ETC.
* For SPECIAL LOW SClilJTOK prices especially for 68»l*GKXXX «S*!> Systems - See Sp<s
elal Vd thlj* Innuc* Ko member, M When tht*y arc gtiiH- the pri<v tim^ U:nU up an- at>o\v!^
... Sculptor Will Run On Over 100 Other Types of Machines ...
... Call for Pricing ...
!!! Please Specify Your Make of Computer and Operating System !!!
• Run Time (>nly
•• C Kn Flic Library
O ■ D9»*, 1 - !K*DOS
F . FLO, U . 1MAXX
CXS . Cbkw CmpUr OS-t
OCT . C«*or rm m ^ m an
South "East (Media
$300 Casumdfa Smith tfaC * ^ft?^ Til 3 7343
TtUpfw (Sl$) $42-4600 Te/cc S106OX630
flMtfwrard
•• Shipping •• ,.
A66 2* U3JL (i^nl «"•)
fWap> SurOrt Add 5*
For4p> AlnMll Abd !•»
Or CUXD, Sh^nf Orrfy
iQM b ■ TrMwMffc at Mtgr—f. tai M«^mfcv*yLCl i»d UnaVULl in TwfaTkmrTtdMW »r«|«w Cbt > iiattMtt>*i|C1)0» li ■ Tra4wwrtt * **r-K Selt*mn Sf^mi C«>
68 Micro Journal
February *69
The C Programmers
Reference Source.
Always Right On Target!
( C User Notes )
A Tutorial Series
By: Dr. E. M. Bud* Pass
1454 Laua Lane N.W.
Conyers, GA 30207
404 483-1717/4570
Computer Systems Consultants
INTRODUCTION
This chapter presents an enhanced version of the getopt
function, which is used to scan the command line. This
function was originally placed in the public domain by someone
unknown, but was later enhanced by Keith Boslic and others,
and subsequently extended and provided by
Lloyd Zusman
Master Byte Software
los Gaios, California
who also piovided much of the text below.
COMMAND-LINE OPTION SCAN FUNCTION
Lloyd calls the enhanced version of getoplO by the name
egeiopiO. The default behavior of this foutine is the same as
that of getoplO. but it has some optional features that make it
more useful.
These options arc controlled by the settings of some global
variables. By not setting any of these extra global variables,
they have the same functionality as getoplO-
The egetoptO function acts like getoplO with the following
enhancements:
The T which gets returned when there is an unrecognized
option is now stored in a global integer called *optbad\ and the
caller can set this value to anything. The initial value in
'opibad' is *?*, which means that the default behavior is just like
that of getoplO.
For example* if egetoptO is to return *-' instead of '?' when it
encounters an invalid option, the following lines should be
executed before egetoptO is called:
extern int optbad;
oplbads (inl)'~\
Options can begin with characters other than just *-\ There is
now a global character pointer called 'optstait \ It points to a
string which consists of a list of characters which can be used to
begin options. The initial string that 'optstait * points to is "•",
so the default behavior is like that of geioptO-
For example, to allow both V and *-* as option delimiters, put
the following lines in the code before egetoptO gets called:
extern char *opisiari;
optstait = *'-+*';
Now that there's a choice of the characters that can precede
options it's desirable to let the caller know what character
begins a given option. In egetoptO. the global integer 'optchar'
will now contain the character that begins a given option, or if
there was an error Insert the following declaration line and
check the value of 'optchar* after each call to egetoptO:
extern int optchar;
The original getoptO writes error messages to Hie descriptor 2
(or to stdeir, depending on the implementation), In egetoptO.
this file descriptor may point to any desired file. The global
integer 'opterrfd * contains the file descriptor to use for writing
error messages; it is initialized to 2,
As an example, to send egetoptO ejiors to go to the file
"egetopterrs", use code similar to the following before calling
egetoptO:
extern int opterrfd;
FXI£ *eout - f open ("egetopt. errs"
w w"> ;
if
{
(!eout)
/* error condition/
exit(l) ;
opterrfd - f ileno(eout) ;
February 69
68 Micro Journal
Some implementations of getoptO allow ihc setting of the
global integer *opterr* to control whether error output is printed:
it is initialized to 1, which enables enor output (as docs any
non-zero value); setting it to disables error output In eg-
etoptO. *opterr' is treated the same way.
The old geioptO forces you to use V in the string of option
letters to show that a given option takes an argument There is
now a global integer called 'optneed' which contains this value,
it may bechanged; 'optneed' is initialized to *:\
In addition, getoptO is unable to handle optional option argu-
ments. For example, if an option called 'd* was specified as
taking an argument to the program *foo\ getoptO would return
the following results when invoking *foo' in different ways:
1) foo -dABC -x , , ,
getoptO return: 'd'
optarg: *ABC"
2) foo -dABC -x < . ,
getoptO return: *d'
optarg: "ABC*
3) foo -d -x
A) getoptO return: v d'
optarg: *-. x «
B) getoptO return: v d'
while ((c - egetopt (argc, argv, ~abc!d%x") )
EOF)
optarg:
NULL
In the case of number 3, sometimes one would prefer to gel the
latter results. This would allow "-x" to be handled as another
option in the next call. In the old getoptO* the 3B behavior may
be gotten by testing the first character of "optarg* and decre-
menting *optind' if this character is *-\ The new routine may
have either behavior directly.
Since this behavior isn't always desired, egetoptO checks a
global integer called 'optmaybe* which allows the programmer
to control whether an option with an argument will gel treated
as number 3A or as number 3B above. It is used similarly to
'optneed 1 . It is initialized to 0, meaning thai behavior 3B is
impossible by default
The following example shows how 'optneed* and 'opimaybe'
can be used:
extern int optneed;
extern int optmaybe;
optneed - (int)'!'; /* use M' instead of *:' */
optjnaybe - <int)'%'; /* use *%' for optional args
In this example, options *a\ *b\ and V take no arguments,
opiion 'c' lakes a mandatory argument, and option *d v takes a
non-mandatory argument If ihis is contained in program *foo\
the following behavior will be observed when it it run:
foo -a -cABC -dXYZ ~d -x -c -b .,,
egetoptO return: **'
optarg: NULL
egetopt ( ) retu m : *c '
optarg:
*ABC"
egetoptO return: v d'
optarg:
XV XYZ"
»»»»»
egetopt () re tu rn :
*d'
»»»»»
optarg :
NULL
» NOTE »
»»»»»
egetopt ( ) retu rn :
% x'
»»»»»
optarg:
NULL
egetopt () re t u rn ; * c '
optarg:
*-b"
Remember thai 'optneed' is initialized to ':' and 'optmaybe'
is initialized to 0. This causes behavior identical to thai
of getoptO unless specifically overridden.
Since the default behavior of egetoptO is the same as thai of
getoptO. there is no reason why it cannoi be renamed to getoptO
and used it in place of the original. It was given a new name so
as not lo conflict with the name of the original getoptO function.
Following is the source code for egetoptO*
* egetopt. c — Extended Egetopt' .
* Original version:
*
* Keith Bostic
* Current version:
Lloyd Zusman
Master Byte Software
Ios Gatos, California
tifno^f EOF
# define EOT
#endif /* ! ECF */
fifndef NULL
# define NULL
#endif /* ! NULL »/
(-1)
{char *)0
68 Micro Journal
February '89
♦define BAOCH
(int)
♦define EMCG
n/r
fdef ine ERRFD
2
♦define MAYBESEP
(int)
♦define NEEDSEP
(int)
♦define START
w_w
* None of these constants are referenced in the executable portion of
* the code their sole purpose is to initialise global variables.
*/
•\0'
/*
* Here are all the pertinent global variables.
*/
char *optarg; /* argument associated with option */
char *optstart - START: /* list of characters that start options */
int optbad - BADCH; /* character returned on error */
int optchar - 0; /* character that begins returned option */
int opterr - 1; /* if true, output error message */
int opterrfd - ERHFD; /* file descriptor for error text */
int optind - 1; /* index into parent argv vector */
int optnaybe - MAYBESEP; /* flag for optional argument */
int opt need - NEEDSEP; /* flag for mandatory argujnent */
int optopt: /* character checked for validity */
/*
* Conditionally print out an error message and return.
*/
♦define TELL(S) { \
if (opterr && opterrfd >• 0) \
( \
char option - optopt; \
write (opterrfd, *nargv, strlen(*nargv) ) : \
write (opterrfd, <S) , strlen (S) ) ; \
write (opterrfd, fioption, 1): \
write (opterrfd, "\n", 1); \
) \
return (optbad) ; \
}
/*
* sindex works similarly to index () and strchr().
*/~
static char *
_sindex (string, ch)
char * string;
int ch;
t
if (string)
{
for ( ; * st ring; ++ string)
(
if (^string — (char) ch)
{
return (string) ;
\
)
)
J
/*
* Extended getopt function
*/
int
egetopt (nargc, nargv, ostr)
February 89 68 Mao Journal
int nargc;
char **nargv:
char *oatr;
<
atatic char *place - EMSG; /* option letter processing */
regiater char *oli; /* option letter liat index V
register char *oai - NULL; /* option atart liat index */
if (inargv)
return {EOF) ;
if (nargc <■ optind || Jnargv [optind] )
return (EOT) ;
if ( ! place)
place - EMSG;
/* Update acanning pointer. */
if (i*place)
{
place - nargv[ optind] ;
if (! place)
return (EOF) ;
if (oai - _a index (opt atart , *place) )
optchar - (int) *oai;
if (optind >- nargc 11 loai II ! *++place)
return (EOT) ;
/*
* Two adjacent, identical flag charactera were found.
* Thia takes care of *-", for exanple.
*/
if (*place — place [-1])
<
♦♦optind;
return (EOF) ;
\
)
/*
* If the option ia a aeparator or the option ian't in the liat r
* we've got an error.
*/
optopt - (int) *place++;
oli ■ _aindex (oatr, optopt);
if (optopt *— optneed It optopt *— optmaybe I I !oli)
<
/*
* If we're at the end of the current argument, bunp the
* arguirant index.
*/
if (!*place)
4-foptind;
TELLP: illegal option - ~) ; /* byebye */
)
/*
* If there la no argument indicator, then we don't even try to
* return an argunent.
*/
if (!*++oli || (*oli !- optneed &6 *oli i- optmaybe))
<
66 Micro JoumaJ February 89
* If we're at the end of the current argument, bump the
* argumBnt index.
V
if << 'place )
♦♦optind;
optarg - NULL;
)
/*
* If we're here, there's an argument indicator. It's handled
* differently depending on whether it's a mandatory or an
* optional argument.
*/
else
<
/*
* If there's no white space, use the rest of the
* string as the argument. In this case, it doesn't
* matter if the argument is mandatory or optional.
*/
if (*place)
optarg - place;
/*
* If we're here, there's whitespace after the option.
*
* Is it a mandatory argument? If so, return the
* next command-line argument if there is one.
*/
else
if (*oli — optneed)
<
/*
* If we're at the end of the argument list, there
* isn't an argument and hence we have an error.
* Otherwise, make 'optarg' point to the argument.
*/
if (nargc <- ♦♦optind)
I
place - EMSG;
TELL(*: option requires an argument — *) ;
)
else
optarg - nargv[optind] ;
J
/*
* If we're here it must have been an optional argument.
*/
else
i
if (nargc <- ++optind)
(
place - EMSG;
optarg - NULL;
)
else
(
optarg - nargv[optind] ;
if (1 optarg)
place - EMSG;
/*
* If the next item begins with a flag
* character, we treat it like a new
* argument. This is accomplished by
* decrementing 'optind' and returning
10 February '89 68 Moo Journal
* a null argument .
*/
else
if <_s index (opt start, *optarg) )
{
-optind;
optarg - NULL;
}
)
place ■» £2dSG;
++optind;
J
/*
* Return option letter.
V
return (optopt) ;
}
EXAMPLE C PROGRAM
Following is this month's example C program; it is a test driver for the command-line processing function egelopt() just described.
♦include <stdio.h>
/*
* This ia a program for demonstrating
* the capabilities of egetopt().
* Run it with various combinations of
* options and arguments on the cormvand
* line to see how egetopt () works.
*/
tdef ine OPT_STRING w abc~d~e?f ?"
/* Meaning:
*
* -a and -b take no arguments.
* -c and -d take mandatory arguments
* -e and -f take optional arguments
V
♦define OPT_CHARS "-+-"
/* Meaning:
* Options can begin with *-' , v +* , or % ~' .
*/
/*
* New global variables used in egetopt () only:
*/
/* string which contains valid option start chars */
extern char *opt start;
/* what egetopt () returns for a bad option ♦/
extern int optbad;
/* character which begins a given argument */
extern int optchar;
/* where egetopt <) error messages go */
extern int opterrfd;
/* character used for optional arguments */
extern int optroaybe;
/* character used for mandatory argu/rents */
extern int opt need;
66 Mcro Journal February *89 1 1
* Global variables which exiat in getopt () and egetopt () :
V
/* the argument of the option */
extern char *op£arg;
/* aet to to auppreaa egetopt' a error meaaagea */
extern int opt err;
/* index of currant argv[) */
extern int optind;
/* the actual option pointed to */
extern int optopt;
main (argc, argv)
int argc;
char **argv;
i
int ch;
/* errora to atdout */
opterrfd «• f ileno (atdout) ;
/* aet thia to 1 to get egetopt ' a error maga */
opterr - 0;
/* return % l* inatead of *?' on error */
optbad - M ' ;
/* mandatory arg identifier (in OPT_STRING> */
optneed - ♦*';
/* optional arg identifier (in OPT_STRING> V
optmaybe - x l* ;
/* charactera that can atart optiona V
optatart - 0PTJ31ARS;
while ((ch m egetopt (argc, argv, OPT_STRING) ) !- EOF)
(
printf ( w \n\toption index (optind) after egetopt (): %5d\n", optind);
printf (*\t\tegetopt () return value: %c (%d)\n", ch, ch) ;
printf ( M \t\tchar that begina option (optchar) : %c\n", optchar) ;
printf ( w \t\tactual char looked at (optopt): %c\n", optopt);
printf ( w \t\toption acguront: \*%a\"\n",
Joptarg ? *(null)" : optarg) ;
for ( ; optind < argc; ++optind)
(
printf ( w \n\t argument index
printf ( w \t\targument :
»argv[optind] ? Nnull)"
%5d\n", optind) ;
V%aV\n",
argv [optind] ) ;
exit(0);
FOR THOSE WH
68 MICRO
JOURNAL
TW
12
February 89
68 Mcro Journal
SOFTWARE
A Tutorial Series
By : Ronald W Anderson
3540 Sturbridge Court
Ann Arbor, MI 48105
USER
From Basic Assembler to HLUs
NOTES
Since writing the last column, I have
spent some time looking at RB ASIC.
I've found a few minor bugs and sent
the report to Bob Jones. Bob has
written me a letter and sent a couple
of revisions. I've been working on
coding some scientific functions that
would be accurate to 19 digits, and
I've sent the first few off to Bob.
Much of the information I sent him
has crossed his first letter in the mail.
Unfortunately the mail from Michi-
gan to Brinish Columbia Canada
takes about a week. Bob reported
that he is interested in increasing the
accuracy of the scientific functions to
match the math package, and we will
most likely colaborate on some im-
provements.
I continue to be pleased with
RBASIC. I did some comparison
tests withTSC Extended BASIC
running on a 6809 (2 MHz). The
FT68K-2 68000 with RBASIC runs
on the average three to four times
faster than the 6809 system doing
rather math intensive calculations.
I gathered from Bob's letter that he
badn't expected much of a response
from me. and that he was glad for
some feedback. I mentioned having
started on his logic series and he said
that I was only the second person
who had responded in any way.
Come on, readers. If you like
something in *68' Micro Journal, let
RBASIC
the author hear fiom you. It is
discouraging to work at something
month after month and only see one
or two responses. Write Micro
Journal or the author of the material
that you would like to see continue,
and it will have a better chance of
doing so.
Having looked over the material
from Bob more thoroughly, I will say
that theie are a few things in RBA-
SIC that are not completely compat-
ible with XB ASIC, but the differ-
ences are mostly due to the processor
differences. For example the USR
function can't be the same. I won't
elaborate in gieat detail because most
of the differences are in things
generally not used extensively in
BASIC programs. I've urged Bob to
add a few new features to RBASIC
that will be extensions and will not
destroy compatibility with old
XB ASIC programs. For example,
when XB ASIC first was done and I
looked at it, I was disappointed to
find a couple of the nice features of
Bob Uiterwyk's old BASIC missing.
To write three data items to a file,
separated by commas, for example,
in ihe old BASIC one simply had to:
100 WRITE #1, A,B»C
TSC's BASIC was made compat-
ible with a BASIC from DEC, and it
lacks the WRITE statement com-
pletely. Instead, as you BASIC users
know, you had <o:
100 PRINT il, A;*,-;S;*,-;C
That is, you have to explicitly code
the printing of the commas between
the data items. I can certainly see
having the PRINT statement work
ihe same way to a file as it does to a
printer, but there needs to be an
easier way to write data to a file.
Bob indicated that he may well be
interested in a number of enhance-
ments in the future. The other thing I
have always thought was missing
from XBASIC is some sort of end of
file test for input files.
90 INPUT ll,A$<N%>
100 IF EOF(l) THEN 120
105 N%-N%+1
110 GOTO 90
120 CLOSE 1
Rather, with XBASIC you
have to trap errors and test to see if
ihe error is #8.
10 ON ERROR GOTO 1000
90 INPUT fl,A${N%)
100 N%«N%*1
110 GOTO 90
120 CLOSE 1
1000 IF ERR-9 AND ERL-90 THEN RESUME
120 ELSE ONERROR GOTO
68 Mcro JounaJ
February *89
13
If you had a program wilh a number
of files thai could reach end of file at
various places within the program,
you would have to have a number of
lines or "cases" for ERR, the error
number and ERL, the line on which
ihe error occurred, wilh different
RESUME lines, and a catch all
ONERROR GOTO at the end so
that other errors than end of file will
be reported properly when debugging
the program. It has always seemed to
me as though BASIC should provide
such a function so the user doesn't
have to build the error trap into even
a simple program to read a data file
and print the contents to the screen.
On the other hand. I suppose we each
have our little pet "It would only take
a few lines of code to add..." feature,
and if Bob were to add all of them
RB ASIC would be big and cumber-
some. Bob. I still hope you will add
"mine".
Assembler
A few weeks have passed since I
wrote the above. Bob Jones has fixed
the few little bugs that 1 found in
RBASIC and we are continuing our
discussions of how to make the math
more efficient. In fact, the floating
point multiply routine has been
improved to be about 4.25 times
faster. I'll have to scrap the few
benchmarks I've run so far and wait
for things to settle down a Utile more.
Let me say that this is a very com-
plete BASIC having hill PRINT
USING features, sequential and
random file access, etc. Ill do a full
review on it in the future. If you use
BASIC for quick and dirty programs,
exploratory programming, or solving
problems that are very complex, you
will want this BASIC.
I received a call from a reader the
other night, who had a few problems
that might be common to some others
of you who are just stalling out on
the 68000 and are new to Assembly
language. I will include a shoit
listing of a program to set an Epson
printer to the 132 column (16.7CPI)
mode. There aie several things to
point out about it. The caller's first
problem was that he had written and
assembled a short program but when
he tried to nin it SK'DOS gave him
an error message that said that there
was no transfer address. The transfer
address is the address in the program
at which it is to begin to execute.
The tiansfer address need not neces-
sarily be the firet address in the
program so the system needs some
way of telling from the program code
on the disk where to start executing
the program relative to its first load
address. To give it this information,
ihe "start executing* 1 address of the
program must have a label. In the
case of listing I, it is the label
START. Now at the end of the
program the END statement tells the
assembler that there is no more
program to code. After the word
END, you simply place the starting
label, START in this case. When the
program is assembled and saved to
the disk as a binary file, the transfer
address is coded into the file from
this information. Otherwise, the code
is treated as a fragment, perhaps part
of another program that is to be
accessed from elsewhere, and it has
no transfer address, and so cannot be
mnbySK*DOS.
remember, does a HEXADECIMAL
and ASCII dump of a disk file, sector
by sector. I had used it primarily to
dump binary files, but one day not
too long ago. I decided to use it to
look for something funny in a text
file. I found that it exited after the
first sector. I made a few changes
and then found that it insisted on
repeating the first sector 5 times and
then went on to the next one. After a
little hair pulling 1 discovered that it
would foul up if there happened to be
a TAB at the start of the sector.
It is now about two weeks since 1
wrote the above. I've been plagued
by a lot of work at work and some
chores that had to get done around
the house. 1 recently found a bug in
my DDUMP utility published here a
few months ago. DDUMP, you may
Text files in SK*DOS use a tech-
nique called space compression.
Rather than put 10 or 12 $20 (space)
characters in a file, SK*DOS auto*
matically compresses consecutive
spaces by using a horizontal tab
character $09 followed by a space
count. If there are two spaces
together, of course, you come out
even, using two characters. How-
ever, any number from 3 to 255
spaces can be compressed to two
characters by this method. What I
eventually figured out, is that the
FSKIP function of SK*DOS doesn't
perform its function if FREAD has
gotten the system into the middle of a
space expansion while reading the
file. FSKIP is supposed to skip the
remainder of the current sector so the
next sector will be read on the next
FREAD call. It worked fine except
when in the middle of a space
expansion. 1 decided to tell SK*DOS
not to expand spaces, since 1 wasn't
using the read function to get the
data, but was taking it directly from
the file control block. All that is
needed is to stuff $FF into the 59th
byte of the file control block after
opening the file but before reading
any data. While 1 was looking at it I
cleaned up the code a little. The
listing of version 2.0 is included here.
Tve improved the error handling and
napped error #8 as end of file. That
error occurs when you try to read
68 Mcro Journal
past the last valid sector of a file.
Essentially I have done what I was
complaining about having to do in
BASIC above.
I have a few copies of the SK*DOS
version of PAT, my editor out for
testing. 1 have held off on distribut-
ing it because I wanted to check it out
personally on a PT68K-2 system
using a monitor and IBM keyboard.
From one source I hear how slow that
system is compared to a terminal, and
from another 1 hear how fast it is. I
want to check it out for myself and
perhaps write a driver that will allow
some fancies on the screen. My other
motive for this is that Dan Farns-
wonh of Palm Beach Software has
sent me his EDDI text editor that
runs with this setup. I have ordered
the monochrome board and IBM
clone keyboard for my system. I
have a monitor kicking around some-
where, so I will be able to run the
system in that mode and free up a
terminal. Actually I have still
another motive* that of the possibility
of doing some graphics for my woik
projects. That is a long term goal.
I've been using RBASIC for
several days to analyze some peculiar
problems at work, and have not
found any fuither bugs in it. It is nice
to have a BASIC that runs on the
68K systems for testing ideas and
techniques for my woik projects.
Along that line, I have a most pecu-
liar problem with combinations of
weights. Essentially I can have 5
different weights but I can use only
three or less weights at any one time.
I can use one of the weight values
repeatedly as in 122 etc. The
problem is to cover the greatest range
of weight in unit steps with various
combinations of these weights. I
found a set consisting of 1, 2, 3, 7,
and 18 that would let me make
combinations of three or less weights
for values from 1 to 28 with no
values skipped. Many of the combi-
nations are redundant, and I would
guess that thcie would be other sets
that might span a laiger range. I am
perplexed that I could find no logical
approach to calculating the best set of
weights. Of course if there were not
a limitation on the number of weights
a simple binary piogression would do
the job.
In a similar problem I have 6
weights to be taken 1 2 or 3 at a time.
I came up with 1, 2, 3, 7, 1 1, and 26,
which gets me to 40 in steps of 1 .
Are there any mathematicians or
logicians out theic who can give me a
clue as to how to appioach this
problem to get the largest coverage
from a given set of weights? A set of
7 taken 3 at a time get me from to
52. They are 1.2,3.7,11, 15. and
34. If any of you can figure out a
good scries that will go fanher in
continuous steps of 1 I'd like to hear
about it The matter is now academic
because of other limitations on the
problem, but it is still of interest.
Last Minute News
I just received a new version of
RBASIC in which the floating point
divide has been speeded up by more
than a factor of 2, and the display of
integer numbers has been cleaned up.
The original had a pioblem if the user
specified too many digits for display.
It would sometimes display with a
slight conversion error showing
15.99999999999999978 rather than
the actual value of 16 for example.
Bob has cured that problem in this
latest version as well.
I just returned from a vacation trip
with my wife to New Zealand with a
stop in Hawaii on the return trip. We
visited John Spray in Auckland and
did a whirlwind tour of the country, I
can say that it is tiuly a beautiful
place. We thoroughly enjoyed our
visit there. I had the opportunity to
drive a right-hand drive vehicle on
the left side of the road. That wasn't
as difficult as it might seem, but I did
have a hard time with the manual
transmission shift lever on the left
and turn signal on the right. I kept
trying to shift gears with the turn
signal. We found a strange mixture
of prices. Gasoline (or Petrol) costs
about twice what it does here in the
U.S. but a good dinner in a restaurant
about half as much.
More to the point of this column,
John and I visited several computer
stores while we were there. Most of
ihem are just like Computerland and
their clones with slick equipment
setups and sales people to tell you all
about the advantages of their prod-
ucts. We did visit one that was
explicitly for the "hacker". They had
computer boards laid out on tables
and very low prices. We found out
that many of the boards were not in
working condition and a purchaser
could either buy a tested one at a
much higher price or buy two or
three in hopes of getting one that
works or can be fixed. There were
also quantities of used disk drives
and the like for sale under the same
terms. I'd say that computing there
has gone pretty much down the IBM
and clone road just as it has here.
Outside of the industrial control area
there is very little else around.
Well, the trip has taken three weeks
of my time so this material is about to
be late. Larry Williams called this
morning to see if I had any material
ready to mail in, so I guess Til run
this through the appropriate conver-
sion program and add the two listing
files to a disk so it can be mailed on
lime.
68 Wcio Journal
February '80
IS
ft*****************************************
* DISKFILS DUMP PROGRAM
*
* COMMANDS:
* N XXXX NEXT PAGE TO BE DUMPED
* B BACK A SECTOR
* F FORWARD A SECTOR
*** + ***+"** + * ****»*#** + + ** + *** +*#**# ******
* SK*DOS / 68K EQUATES FOR USER PROGRAMS
0000A029
GETCH
EQU
$A029
0000A023
GETNAM
EQU
$A023
0000A024
DEFEXT
EQU
$A024
0000A005
FOPENR
EQU
$A005
0000A001
FREAD
EQU
$A001
0000A011
FSKIP
EQU
$A011
0000A031
TOUPPR
EQU
$A031
0000A02F
HEXIN
EQU
$A02F
0000A03A
OUT2H
EQU
$A03A
0000A03B
OUT4H
EQU
$A03B
0000A03C
OUT8H
EQU
$A03C
0000A034
PCRLF
EQU
$A034
0000A037
PERROR
EQU
$A037
0000A036
PNSTRN
EQU
$A036
0000A035
PSTRNG
EQU
$A035
0000A033
PUTCH
EQU
$A033
0000A000
VPOINT
EQU
$A000
0000A01E
WARMST
EQU
SA01E
Get input character with echo Xflts)
Get filename into FCB
Set default extension
Open file for read
Read a byte
Next Sector
Conv't char in D5 to Upper Case
Input hexadecimal number
Output 2 hex digits
Output 8 hex dibits
Print CR/LF
Print string {Without CR/LF)
Print CR/LF and string
Output character
Point to SK*DOS variable area
Harm start
000000
A000
START
DC
VPOINT
000002
284E
MOVE.L
A6,A4
000004
A023
DC
GETNAM
000006
6500
0090(00098
BCS
HELP
00000A
7801
MOVE.L
#1,Q4
oooooc
A024
DC
DEFEXT
00000E
A005
DC
FOPENR
000010
197C
OOFF 003B
MOVE.B
#$FF,59(A4)
000016
A001
LOOP
DC
FREAD
000018
6618
(00032
BNE.S
ERROR
00001A
204C
MOVE.L
A4,A0
00001C
D1FC
0000 0060
ADD.L
196, AO
000022
611C
(00040
BSR.S
OP AGE
000024
A029
DC
GETCH
000026
A031
DC
TOUPPR
000028
0C05
0045
CMP.B
#'E' ,D5
00002C
6710
{0003E
BEQ.S
EXIT
00002E
A011
CONTIN
DC
FSKIP
000030
60E4
{00016
BRA
LOOP
000032
0C2C
0008 0001
ERROR
CMP.B
#8,1(A4>
>000038
6700
0004 (0003E
BEQ
EXIT
00003C
A037
DC
PERROR
00003E
A01E
EXIT
DC
WARMST
GET POINTER
FCB POINTER
GET FILENAME
CODE FOR -TXT
SET NO SPACE COMPRESSION
POINT AT SECTOR INFO
IS END OF FILE?
* ROUTINE TO OUTPUT A PAGE IN HEX AND ASCII
000040
A034
OP AGE
DC
PCRLF
000042
4240
CLR.W
DO
LINE COUNTER
000044
A034
* LOOP
DC
FOR LINES
PCRLF
000046
323C
000F
LLOOP
MOVE.W
#15, Dl
COUNTER FOR CHARACTERS
00004A
1800
MOVE.B
D0,D4
00004C
£904
ASL.B
#4,t>4
ADDRESS OF FIRST BYTE OF
00004E
A03A
DC
OUT2H
000050
183C
0020
MOVE.B
#$20, D4
000054
A033
DC
PUTCH
SPACE
000056
A033
DC
PUTCH
SECOND SPACE
* INSIDE LOOP FOR 16 CHARACTERS
IN HEX
000058 1818
00005A A03A
00005C 183C 0020
LINE 01GE
CLOOP MOVE.B lA0)+,D4
DC OUT2H
MOVE.B l$20,D4
OUTPUT FIRST BYTE
16
February "89
66 Micro Journal
000060 A033
000062 57C9 FFF4<00058
000066
00006A
00006C
000072
000076
000078
00007C
000080
000082
000086
000088
00008C
00008E
000090
000094
000096
183C
A033
91FC
323C
1818
0244
OC04
6C04
183C
A033
57C9
A034
5240
0C0O
66B0
4E75
0020
0000 0010
OOOF
007F
0020
{00086
002E
PFEC(00076
0010
{00046
DC
DBEO
• NOW DO ASCII
MOVE.B
DC
SUB.L
MOVE.W
ALOOP MOVE.B
AND
CMP.B
BGE.S
MOVE.B
DC
DBEO
DC
ADD
CMP.B
BNE
RTS
AL1
PUTCH
Dl.CL P
CHARACTERS,
•$20, D4
PUTCH
116, A0
•15,01
<A0)+,D4
♦$7F,D4
•$20, D4
AL1
• ' .',04
PUTCH
01,ALOOP
PCRLF
II, DO
• 16, DO
LL P
SPACE
CHARACTERS
FOR NON PRINTABLE
EXTRA SPACE BEFORE ASCII
RELOAD COUNTER FOR CHARACTERS
MASK OFF HI ORDER BIT
IS IT PRINTABLE?
IF YES
ELSE PRINT PERIOD
NEXT LINE
000098 49FA 0006{000AO HELP LEA HLPMSG (PC) , A4
00009C A035 DC PSTRMG
00009E A01E DC WARMST
0000A0 5379 6E74 6178 HLPMSG DC.B
DC.B
DC.B
DC.B
DC.B
DC.B
DC.B
DC-B
DC.B
DC.B
0000D2
61 6E
6420
2E54
0000E8
4444
554D
5020
00011C
6174
2061
2074
000157
7468
6520
4153
00018D
7072
696E
7461
0001BD
4174
2074
6865
0001F5
7365
6374
6F72
00022C
7072
6576
696F
00025F
4620
7768
65 6E
"Syntax: DDUMP FILENAME Defaults are wiaicve", SOD, $0A
*and .TXT extension. ",$OD, $OA, $OA
"DDUKP dumps a disk file to the terminalsotor*, SOD, $0A
"at a time. The dump displays 16 bytes in HEX followed by*,$0D,$0A
"the ASCII representation of the same 16 bytes. Non-*, SOD, $0A
"printable characters are displayed as periods .*, SOD, SOA
"At the command prompt, P will cause the(ftKDAard) *, SOD, SOA
"sector to be displayed, and B (back) will dispta*', SOD, SOA
"previous sector. E will Exit the progr«H 1ft, SOD, SOA
"F when the last sector of the file has t».iched . " t SOD, SOA, $04
ERRORS DETECTED
END
START
* PROGRAM TO SET EPSOM TO 16 CPI
OOOOA033
PUTCH
EOU
SA033
0000A000
VPOINT
EOU
SA000
0000A01E
WARMST
EOU
SA01E
00000CCB
DEVOUT
EOU
3275
000000
ORG
$0000
000000
A000
START
DC
VPOINT
000002
1D7C 0002 OCCB
MOVE
.B
•2, DEVOUT (A6)
000008
183C OOOF
MOVE
.B
#S0F,D4
oooooc
A033
DC
PUTCH
00000E
1D7C 0000 OCCB
MOVE
.B
•0, DEVOUT (A6)
000014
A01E
DC
END
WARMST
START
ERRORS DETECTED
FOR THOSE WH
68 MICRO
JOURNAL
TM
66 Micro Journal
February "89
17
Looi©
Most of you will remember
Bob from hi* series of leuers
on XBASIC If you like it or
wint more, let Bob or u*
know. We w«nl lo &ive you -
what you want!
peaking
The Mathematical Design of Digital Control Circuits
By: R.Jones
Micrortics Research Corp.
33383 Lynn Ave., Abboisfond, B.C.
Cinida V2S IE2
Copyrighted Q by R. Jones & CPI
SOLUTIONS TO TEST FOURTEEN-A
>
c
1
z
o
1
IL 1
2
3
1
SI 2
2
-
1
2L 3
-
4
JL *
S
-
1
53 5
s
1
;
1
<
1
2
I
1
2
3
l
2
2
-
i
3
-
2
Confine 2>ȣ
6 contacts
<? sprites
C<0
Operated
Gd*
*
K
1
1
IL
1
2
3
SI
2
2
i
IL
3
-
Ur
3L
4
5"
-
S3
5
5
1
>
o
C
1
Z
1
I
2
3
1
2
2
1
1
3
-
4
k
2
-
1
13 sp^nqs
to
Combine 2 ,5
Relays
Ode
>
1
z
1
1
IL
J
2
3
1
2>1
2
2
I
1
2L
3
•*
f
3L
fr
5"
«rt»
1
S3
5
5
1
1 1
>
[ 1
Z
1
1
1
2
1
2
-
3
3
-
1
6 contacts
iO SprifxjS
(c)
0>mWne 0,2^ reamer 3, J*-* 1,3
18
February 89
68 Micro Journal
Relays
UNop«»WJ Ck
X
I
z
1
IL 1
2
-
2L 2
-
3
I
S2 3
-
3
1 1
1
X
_0J 1
Z
1
1
2
-
2
-
2
1
4 Contacts
6 springs
to
Combine 2,3
Be careful here! Note that we're keeping track of the number of UNOFER ATED relays.
Operated CcAe
>
<
1
Z
1
IL I
2
3
1
SI 2
2
-
I
2L 3
U
-
I
S2 *
h
-
I
>
1
z
1
1
2
2
I
2
2
i —
1 1
3 corXads
5 Springs
0)
Combine 2,3, **■
This is the inverse of the specs, and should be graphically complemented to give ihe desired output conditions. NOTE : Line-1
needs no contacts.
felajs
Operated
Cok
X
t i
i
IL
J
2
3
51
2
2
<t
2L
3
5
6
SI +IL
k
-
7
S2
S
5
8
3L
6
2
6
SI + 2L
7
1
-
S2 -rlL
8
<?
10
51 +S2
«?
1
-
S2 + 2L
10
-
11
S3 +3L
II
q
it
>
i
I
z
i
1
2
3
2
2
fr
3
5
6
4
-
7
5
5
8
6
2
6
7
7
-
8
7
q
<?
-
10
10
7
10
Kl contacts
2^Sprinqs
a)
Remnber 10,11-^,10
NOTE : In line-6, column X=0. I've not opened up a line for S3, because this circuit is interested in sets of TWO only. Any other
size is all the same to this network, so I can save myself a lot of work by naking all sets larger or smaller than TWO take on the
same name, namely SI , which I now choose to interpret as "One set of any size except TWO* 1 . Similarly in Line- 1 1,
If you attempted each and every one of the above, especially ihe last live (which are reasonably tough), you should have a really
good idea how to create iterative tables by now! Ihey were good practice, anyway! So, if everyone's ready, let's lode at a final
high-powered technique for manipulating a prototype table.
Mile 18 -heading for Mile 19
68 Moo Journal
February 89
!9
ITERATIVE NETWORKS (Continued)
MULTIPLE ASSIGNMENT
In our earlier study of iterative netwoiks we've always produced a prototype cell with one input-line for power, which is switched
from one level to another as it proceeds through (he cascaded network. Eventually, if it's not cut off along the way, power arrives
at one or more output-lines which arc connected together.
Let's pretend we've developed a (able which switches between eight different levels, numbered from through 7, where each level
represents a different piece of info being passed from one relay to the next along our chain of "n" relays. I don't think I'm far
wrong when I say that all of you know that eight different numbers (or data-codes) CAN be transmitted in binary along only
THREE wires, instead of the EIGHT original lines. This is just what we're going to attempt in our final session with iterative
networks. We're going to "code" our info, using multiple line assignments, instead of our usual "one line = one piece of info". Of
course we're going to this scientifically, and develop codes which won't create any conflict one with the other. And just so we can
tell whether "multiple" coding of a table has produced any improvement over "single" coding, we obviously have to have some
standard of comparison.
SPRINGS AND CONTACTS
Ihis will be based on the number of "springs" and "contacts" in both implementations. You already know what a "contact" is, so
I'll simply define a "spring" as a terminal on a ic lay-contact to which a wire can be connected. An ordinary NO-contact or NC-
contact has TWO springs, because two wires can be connected to it, one at each end of the contact. A transfer-contact, on the other
hand, has THREE springs, because one wire can be fastened to the common centre-point, and one each to the NO and NC contacts
between which it can be switched.
So without further ado, let's get on with a new set of specifications with a slightly different twist to vary our diet a little, and
compare the two methods of assignment Here then is
ITERATIVE NETWORKS - MULTIPLE ASSIGNMENT - EXAMPLE 1
We're called on to design the prototype cell for a network of "n" relays whose output-line is normally powered-up, but which has
to shut off iff exactly ONE set of TWO relays becomes operated.
This time I don't think you'll need a step-by-step explanation of the table shown in Diagram 96a, especially if you take time out to
actually create it yourself. Just a brief pointer to the Z-column, where you'll notice that we're calling for power in all lines except
where the set of 2 relays is formed. The normal table is necessary as the first step in our new procedure, and I've already drawn the
prototype cell in 96b for comparison purposes later.
Operated
CoU
)
<
1
z
1
I
IL
i
o
2
i
2L
2
-
3
3L or more
3
3
1
t>)
Diagram 96
If we look at the network, we see that X has a total of seven contacts, which, when grouped to form transfer-contacts, require
eleven springs to form the circuit <■ - 3 transfers of 3 springs each, and 1 NO-contact of 2 springs. With me so far? Good!
Note that our prototype table shows than an output is required for lines, or states, 0, 1 and 3 (which is why outputs 0, 1 and 3 are
joined together in 96b), and it's at this point that we begin our multiple assignment coding.
20
February *B9
66 Micro Journal
CREATING A MULTIPLE-ASSIGNMENT PROTOTYPE TABLE
This begins with Diagram 97a, where our original "Code" column has now been moved out to the extreme left Keep in mind that
Z calls for an output in lines 0, 1 and 3 - highest number therefore being "3" - so evexy wheie thai 0, 1 or 3 appears in our original
table (in the "code" column or either of the X-columns) we're going to write "3" (the highest number called by Z).
1 5
<
1
3
3
3
1
5
3
2
-
3
3
3
5
3l
(«)
>
1
23
25
3
1
3
23
2
2
2
-
23
3
23
23
23|
*
1
1
23
23
I 3
1
1 3
2J
\1
2
12
—
123
3
125
25
123
0>)
CO
>
1
23
023
01 3
1
01 3
OZ3
0>2
2
012
-
0123
3
0123
023
10123
(a)
>
1
-
01
1
-
2
2
-
3
3
023
<&
Diagram 97
The procedure we're going to follow isn't difficult, but we MUST be careful not to make any mistake as we go along. It's a
continuous repeat of a veiy simple step, so stay close and it'll all come out OK. Still with 97a then, we've just set out a new
coding, both in the "Code" column and in both internal columns, and at the moment it seems that we have 3s everywhere. Now,
treading very warily, let's look at column X=0 and ask ourselves "For eveiy 3 in this column, is there a consistent digit in the code-
column?*' We see that this IS so, namely that for every 3 in this column there's a 3 externally in the code-column. OK then, let's
move to the X= 1 column and ask the same question. Ihis time we have to answer **No", because, although the 3s in lines and 3
both line up with an external 3, the 3 in line-2 doesn't even HAVE an external number* let alone one which is the same for ALL the
3s in this column.
ADDING CODE-2
We'll rectify this situation at once, by inserting IN THE CODE-COLUMN the next lowest number (ie, 2) directly opposite the 3s
in column X=l (see Diagram 97b). So now we DO have a consistent number which lines up with ALL our 3s - - namely, an
external 3 lining up with the 3s in column X=0, and an external 2 lining up with the 3s in column X*l. Note that we keep these
external numbers in neat columns! Now the at the far left corresponds to code-23 in the codc<olumn, so eveiy where there's a
in the original internal columns, we MUST ensure that it gets changed to 23. Similarly, far-left-l * s code is unchanged at code-3, so
we leave this untouch*) in 97b*s internal columns. Far-left-2 corresponds to code-2 now, so original internal 2s, of which there's
only one, gets recorded as 2 in 97b, and finally, far-left-3 corresponds to code-23, so all original interna) 3s get changed to 23. This
completes the compilation of table 97b.
Having just added 2s all over the place, we must now concentrate on this figure. As before, beginning with column X«0, we ask
our standard question, only this lime we'll ask it about the 2s in 97b. And what do you know? The 2s in the X=0 column DO have
a consistent external figure lining up with them, namely the 3s in the code column. Ho hum! Let's move to column X»l instead,
and repeat our question. Tlie answer has to be "No", because the first and last 2s in this column line up with an external 3, while
the lower two 2s line up with an external 2. No consistent line-up at all! !
68 Micro Journal
February 89
21
NOW FOR CODE- 1
Noihing for il but lo FORCE an alignment, and ihcrcby create 97c, by entering Is in the code column to line up with the 2s in
column X=l. This means lhai we have to amend our INTERNAL codings too! Only codes 1,2 and 3 got changed ihis time, so
let's begin with far-left 1 and corresponding codc-13, which iclls us to change our original internal Is to 13. Similarly far-lcfl-2
causes original 2s lo be replaced with 12, and far-left-3 causes original 3s to become 123. And that's 97c done!
AND FINALLY CODE-0
Now to process ihe internal Is. Column X=0 doesn't have any. so there's no problem there, but column X=1 has Is running all the
way from top to bottom. Nowhere is there a SINGLE, consistent, external figure in ihe code-column to line up with these four Is,
so let*s FORCE it once more by putting the next lowest figure (ic, 0) in ihe code-column (sec 97d), and just as before we*tl update
the table internally. For example, far-left-0, code-023, tells us to replace all original internal 0s wiih ihe code 023. and so on for the
rest of the lable. Final check of 97d coming up! "In column X=0, do our 0s line up consistently?*' YES, they do, with the 3s in ihe
code-column. A check of column X= 1, of course, shows internal 0s lining up consisiently with external 0s. So we've come to the
end of the process, having now successfully coded our original lable into a multiple assignment form.
Don't relax just yet though! There's more to come before we can draw our multiple-assignment prototype!! We must first convcit
97d to what's known as a "lerminal connection table", ihe procedure again being simple and straightforward, thank goodness! See
97c to follow my explanation.
THE TERMINAL CONNECTION TABLE
Here we'll begin with the skeleton of a prototype-table, wiih just the far-left codes of 97d in ihe code-column. Next, we're going to
be looking from the viewpoint of the code-column of 97d INWARDS to its X-tablc. Let me elaborate! We'll start with the 0s in
97d*s code-column, and ask "What figurc(s) in 97d*s X=0 column docs consistently line up with?" As ihcrc are four external 0s,
ihcre is NOTHING in column X=0 that lines up wiih all four, so we enter a "-*' in 97e in column X=0 in line with the in ITS
code-column. Back to 97d, to ask ourselves "And what docs an cxicmal-0 line up with consistently in the X=l column?" Here il
lines up with 01, so in 97c in ihe X=l column we write 01 to line up with extcmal-0.
Now for the Is in 97d's code-column. They line up with noihing in X=0, so we enter a "•" in 97e's X=0 column opposite codc-1.
These external-Is line up CONSISTENTLY only with the 2s in column X=l, so ihis is what we record in 97e's X=l column
opposite codc-1. Similarly, we record the fact that 97d's cxtcmal-2 lines up wiih nothing in column X=0, but wiih 3 in column
X=L
LET'S THINK A LITTLE ABOUT SOME OF THE CODES
Finally we record ihe fact that 97d's external code-3 lines up consistency with 023 in column X=0. but, BECAUSE WE HAVE AN
EN1KY IN COLUMN X=0, in the case of the X=l column we'll do a little bit of ihinking first. First let's observe thai although
97d's cxtcnial-3 lines up consistently wiih inlemal-01, the reverse cannot be said to be true, namely, intcrnal-23 doesn't consis-
tency line up with extemal-3. Under these circumstances, where a line-up only half-complies, we arc free to enter 0, 1 , 01 or
noihing at all in 97c's last remaining slot. Which shall we enter to give us ihe best advaniagc? Now's the lime to remember an
earlier mle about prototypes, which said that if the same entry appears in BOTH X-columns then no contacts are necessary, a
straight wire-connection being sufficient. With Ihis mlc in mind, our choice is obvious! We'll insert a in ihis location, to go wiih
the in ihe X=0 column. 1 is no use to us, as it would only mean an extra contact.
Sometimes we can complete our connection lable a little more quickly by filling in all the ">"s first, if ihere ARE any in the
multiple-assignment lable developed. For instance, in 97d, there's a "-" in column X=0 opposite codc-012, so we could right away
(in our connection lable) put a "-" in rows 0, 1 and 2 in column X=0 f which would leave only one slot to be completed in this
column, plus, of course, we'd have lo do column X=l. No "-"s in column X=l, so we can't lake a short cut there. This method
could save some time, and possibly a lot of checking of external codes against internal ones.
DRAWING THE PROTOTYPE CELL
Wiih the lerminal connection lable all complete, we're ready lo draw ihe prototype at last! This is shown in 97f, the interpretation
being the same as before, namely, input- line goes nowhere via a NC-coniact, but goes lo both terminals and 1 via NO-contacts.
And so on for the rest of the lable, noling that input-line 3 goes to output- lines 2 and 3 via NC-contacts, but lo output-line»0 via a
direct connection (as appears in boih columns). As far as power input is concerned ... remember it always came in at input-line-
0? Our multiple-assignment lable in 97d shows that our old codc-0 now corresponds to code-023. so we connect power to input-
lines 0, 2 and 3 of our first cell. Power-output is ALWAYS taken off at the highest-numbered output-line only, in our case output-
line-3.
22 February '89 68 Micro Journal
Observe thai our new prototype cell only requires six contacts and ten springs, compared 10 the original seven contacts and eleven
springs. In view of ail the work we've just done, you may feel that this isn't much of a saving, but always remember ... this is how
much we save PER CELL, so if we had 199 relays in the chain we'd have saved 199 contacts altogether, PLUS the necessary
wiring!! Sometimes the work doesn't save anything at all, and we just end up wiih a DIFFERENT circuit performing the same
function as before. Only one thing is reasonably certain - we won't require MORE contacts or springs!
Here's an example which shows how big the saving in contacts can really be!
ITERATIVE NETWORKS - MULTIPLE ASSIGNMENT - EXAMPLE 2
Ihe specs call for a prototype cell to be designed for a circuit of "n" relays which will give a continuous output, UNLESS two
consecutive sets are separated by more than one UNOPERA1ED relay, in which case the power gets cut off.
You're so good at this stuff now, that I don't think a detailed description will be necessary, and you should be able to feel your way
through the problem with ihe aid of the lablcs of Diagram 98 alone. I will, however, get you started on the first multiple-assign-
ment table of 98c. This is compiled by writing our original codes to the far-left, then, noting in 98a that Z has an entry for all codes
0, 1, 2 and 3, we enter the highest of these numbeis (ie, 3) in all locations in 97c where 97a has 0, 1, 2 or 3, whether in the code-
column or in the interna) lable.
Operated Unop
Code
>
' 1
1
z
1
1
I 4"
1
2
1
I
1 + I
2
3
1
I
I + overl
3
13
-
1
"7 contacts
ll Springs
•*§ X<^ ®,
>
f
' 1
3
3
3
1
3
3
3
2
3
5
3
3
3
3
-
>
i
23
23
23
1
23
23
23
2
23
3
23
3
3
3
—
ft)
kf)
1 •--
1
0123
0123
123
\
123
23
123
2
23
3
123
3
3
3
-
«
X
1
123
123
123
1
123
23
123
2
23
3
123
3
3
3
-
fe)
X
1 1
01 It
1
2
I
2
3
123
3
3
-
<9>
\s> — #
4- contacts
6 springs
-*-
Diagram 98
6$ Merc Journal
Febr uary 80
On second thoughts, maybe I WILL talk you through ihe construction of Diagram 98g from 98f. First, we'll tackle the 4i -"s by
noiing that we have one in 98f, unluckily for us only opposite code-3, so in 98g*s code-3, column X= 1 we insert a *v\ OK, now to
98fs code-column, commencing wiih 0. Ihis lines up with 01 in the X=0 column, so this is what we record for 98g*s codc-0 in
column X=0. Now, in 97fs X=l column, lines up with 123, BUT THE REVERSE ISN'T TRUE, as 123 tines up with oiher
rows as well. This means we can pick and choose here, so we'll select only the 1 of 123, to change the 1 already in the X=0
column into a simple wire-connection.
Looking at 98fs externa)- 1 we note that it DOES consistently line up with 2 in column X=0, so let's record this in 98g. Again we
have a situation similar to that for our 0-row, namely, code-1 lines up with 123 in column X=l, but not in reverse, so we're free to
pick and choose here too. So let's select the 2 of 123 for 98g*s column X= I, to go with (he 2 in column X=0.
Coming now to 98fs code-2, we note thai it, too, only half-complies. That is, although it lines up with 3 in column X=0, intcmal-3
doesn't consistently line-up with extemal-2, so let's withhold judgment for a moment while we look at column X=I , No doubt at
all here, 2 lines up with 123, which we record in 98g's column X= 1. And so, of coarse, we have no option but to put our 3 in
column X=0 in order to neutralise the 3 in column X= L OK?
Finally, in 98f, extemal-3s line up with internal-3s in column X=0, and we end up by recording this fact
When we come to power up our prototype in 98h, we observe that, according to 98f, our original code-0 is now code-0123, so we
connect power to input-lines 0, 1 , 2 and 3 of our first prototype cell in the chain, and connect our output-device to output-line 3 of
tltc final cell, this being the highest code-number
RE-ARRANGING THE CONTACTS IN A PROTOTYPE CELL
Observe how I've shuffled around the contacts of our prototype to form a new cell in 98i. Because input-line-0 is connected
DIRECTLY to output-line I, it doesn't matter in theory whether one end of the upper NC-contact is connected to inpuMinc-0 OR
to output-line- 1, AS THEY'RE THE SAME POINT ELECTRICALLY. In actual piaclice though it makes a tremendous differ-
ence, as I can now use a single transfer con tact with its centre-point connected to output-line- 1. Similarly, 1 can transfer one end of
the NOcontact on input-line-2 so it connects instead to output-line-3. to produce another transfer-contact.
Alternatively, commencing once more with 98h, 1 could equally as well have shifted the end of the NO-contact from output-line- 1
to input-linc-0, to fonn a transfer with its centre on input-line-0. And ihe end of ihe NC-contact presently connected to output-line-
3 COULD have been shifted to input-line-2. Or any combination of all these shufflings around!
Now for the big sinprise! If we count the number of contacts and springs in our new prototype, we find that we've reduced the
original 7-contacts/l 1-springs to a VERY compact 4-coniacts/6-springs!! A substantial saving indeed! Especially when you
consider that we can now use smaller-sized relays. And only six wires going to each relay instead of the original eleven!! So you
see, it IS worthwhile to try multiple-assignment if you're into iterative networks at all.
In fact, it's such an interesting technique, that I'd now like you to do
TEST FOURTEEN-B
Commencing with the regular prototype lables of TEST FOURTEEN- A, convert them to multiple-assignment tables, and compare
ihe original contact/spring rating with the new.
CHIT-CHAT TIME AGAIN
And that, I'm afraid, is just about all I can tell you about iterative networks. This siage of our journey is a fairly critical one, as the
next few miles are likely to be a little rough, though 1*11 TRY to explain things as simply as 1 can. If you can push your way
through that stretch of jungle, you'll not only have a DEEP understanding of some of the most powerful aspects of network design,
but will know a LOT better what Boolean Algebra IS and what it ISN'T. However, just in case it all proves a little too much for
the lesser-experienced of you, I've arranged for helicopters to lift you over this stretch, and deposit you in a jungle holiday-camp
where you can swat mosquitoes, relax, swat mosquitoes, bask in the sunshine, swat mosquitoes, etc., until I and your more fool-
hardy companions catch up to you again. In oiher words, you can skip the next few sections, dealing with Boolean matrices (of all
ihings), if you wish! I'd recommend ihough that you come with us for a little way at least!
... End of Mile 18. At Mile- 19 marker, wondering just what sort of creepy-crawlies and other unmentionables lie waiting in the
jungle ahead. Shudder! Shudder! Not that I'd want you to lose any sleep over it. Remember the helicopters!
FOR THOSE WHOlMSmnlSMSi | 68 micro
JOURNAL
24 February 'BO 68 Mfcr o Journal
INTERFACING TO THE
MOTOROLA 88000 RISC
With the recent introduction of the
Motorola 88000 family of high perform-
ance RISC architected ICs, a new era in
performance oriented microprocessing
has begun (refer 10 figure 1). Like many
other performance oriented systems
though, the performance of ihe 88000
family is determined by many factors.
These include factors such as the raw
processing power of the cpu, the cpu
architecture (Von Neumann or Har-
vard), memory management, code/data
cachingand the interfacing techniques to
the user environment It seems that in
many systems designs interfacing to the
user environment does not receive the
attention it deserves. In developing the
architecture for the 88000 family , Mo-
torola paid great attention to thisparticu-
Iar aspect of the system design and devel-
oped a new bus interface called the M-
Bus. Prior to discussing the details and
attributes of the M-Bus, a brief discus-
sion of the 88000 family and philosophy
behind the architecture will give the
reader a better appreciation for the ap-
proach used in the architecture of the M-
Bus.
CHIP SET
BY: Tcny La well Jb Sang Quan
MOTOROLA Inc.
3501 Ed Bluestein Blvd.
PO Box 6000. Austin, Tx. 78762
The 88000 family of RISC devices
includes the 88100 CPU which provides
the integer and floating point processing
power for the family and two 88200
CMMUs which provide the memory
management and data caching for the
data and instruction code. The 88100
uses a Harvard Architecture (totally
separate paths for the instruction code
and the data) for itsex ternal interface and
is intended to interface directly to the
CMMUs via the P-Bus interface. This
interface is optimized for connection to
the CMMUs to insure zero wait state
access of code and data, but does not
preclude the user from connecting the
88100 directly to other memory or IAD
devices. When connected to the
CMMUs, the 88100 can support up to 4
CMMUs on the code bus and A CMMUs
on the data bus. The internal architecture
of ihe 88100 is architected for pure per-
formance (refer to figure 2). Ihe internal
®
MOTOROLA INC.
architecture is organized into four inde-
pendent execution units with their own
separate pipelining capabilities. The
88100 sporxs a completely synchronous
bus interface with separate 32 bit data and
address lines and operates at 20mhz. The
cpu is capable of executing one
instruction(including floating point) ev-
ery clock cycle while concuirently load*
ing or storing data at a rale of up to one
word per clock cycle. With the configura-
tion shown in figuie 2 Motorola can guar-
antee ihe customer that as cpu clock
speeds are scaled upwards, the CMMU
speeds will be scaled to match. The
88100 suppoits many more features than
just those mentioned here, but the ones
mentioned will give ihe reader at least a
glimpse of what the 88100 is capable of
providing.
The 88200 CMMU provides the
memory management and caching func-
tions for both the data path and the code
path. As mentioned earlier, a typical
system would include two CMMUs, one
on the data side and one on ihe code side
of the cpu. The organization of ihe
f> BUS ADDRfSS
p bus iNsrnuctiON
Ml 8**01}
>N$1fl|JCIl0N
rwMkii
ik.
3
PflUS AQ0RISS
P BUS OATA
INSTRUCTION
CMMU J
o<>
MUW700
DATA
CMMU 1
OO
MCM700
DATA
CMMU 4
M6US
MBUS
S£
system memory
Figure 1 System Block Diagram
66 Micro Journal
February '69
25
Figure 2 88100/88200 Block Diagram
CMMU is quite modular and divided
cleanly between the memory manage-
ment and data caching functions (refer to
figure 2). The memory management
portion of the CMMU consists of two
address translation caches which pio-
vide the user with different levels of
granularity foraddresshitdetection. The
PATC (page address translation cache)
provides the user with 56 entries each
covering 4 kbytes of address space and is
updated automatically on an ATC miss
by table walks. The BATC (block ad-
diess translation cache) has 10 entries
that provide 512k bytes of address trans-
lation each and are loaded and updated
by software. The data cache portion of
the CMMU, though a totally separate
unit from the memory management unit
(MMU), woiics in parallel with the
MMU to provide a "no wait state" data
caching function. The data cache is or-
ganized as a 16-kilobyte four way set
associative physical cache. To achieve
the "no wait state" capability, the selec-
tion of the data cache set is performed at
the same time the MMU is doing the
logical to physical address translation.
In most environments, the CMMU
acts as the users interface to the 88100
cpu via the M -Bus interface. The remain-
der of this article will discuss the details
of the 88200 CMMU and the user inter-
face M-Bus.
February 89
68 Micro Journal
CMMU Description
To effectively play ihe role of an
active buffer between the processor and
the memory subsystem, the CMMU im-
plements interfaces to the P-Bus on the
processor side and M-Bus on the mem-
ory side. Logical addresses issued by the
processor are presented to Ihe CMMU
on ihe P-Bus, uanslaied (if valid) into
physical addresses by the CMMU,
which are then used to access die daia
cache, memory or other devices on the
M-Bus. These bus interfaces, together
with the data cache, have been designed
to keep die user from having to develop
a complex interface that is capable of
feeding ihe processor efficiently.
The P-Bus interface supports 33 ad-
dress lines, 32 bit data lines, and conuol
lines such as Chip Select, 4 Daia Byte
Enables, Read/Write, Lock, and 2 RE-
PLY lines. The bus protocol is synchro-
nous and pipelined, optimized to supply
the processor with either code or data at
a peak rale of one word per cycle (80 M
bytcVsec at 20MHz). For fault detection
purposes, each P-Bus output(actually all
outputs in the CMMU) has a comparator
circuit that checks the signal on ihe pin
against die one lhat is fed to its driver If
a discrepancy is detected, dieERR(enor
delect) signal is asserted one cycle later.
To supppoa system fault tolerance,
the P-Bus interface can be placed in ihe
checker or shadow mode. In this mode,
all output drivers are disabled, allowing
a master CMMU to be coupled to one or
more checker CMMUs. The checkers
have access to the code and data streams
and execute concurrently in lock step
with the master, verifying every output
signal but not driving any. If a checker
detecis a diffeience between the output
of the master and iis own internal signal,
it asserts the ERR signal.
The M-Bus interface, described in
detail in a later section, supports a syn-
chronous 32 bit bus with multiplexed
address and data and conuol signals to
perform bus arbitration, specify Read/
Write operations, establish exclusive
use of global resources, inhibit externa)
caching, signal bus errors, and provide
initialization at Reset TheM-Bus inter-
face works in conjunction with the cache
control logic to automatically maintain
cache coherency via an efficient bus
snooping piotocol Thiscoherency logic
insures that when a device attempts to
access a memory location that Ihe cache
has a modified copy of, the cache will
update memory before allowing the
device to complete the access. Cache/
memory coherency is a critical issue in
multiprocessing systems, or in systems
with Direct Memory Access devices.
The CMMU can be configured, con-
trolled, and monitored by software
through its register file, which consists of
four categories of registers:
1. System interface registers: ID,
Command, Status, Address, and Conuol
registers.
The ID Register contains a 7 bit code
that uniquely identifies the CMMU
when its register file is accessed from the
M-Bus. These ID bits are set when the
CMMU comes out of reset via 7 external
pins lhat are output-only during normal
operation. The CMMU ID may be
changed dynamically by writing a new
code into this register.
The System Command Register al-
lows software to initiate cache flushes
and address probe operations. Aprobcof
a logical add/ess returns the correspond-
ing physical address that is mapped to it,
and all ihe protection/control bits per-
taining to that address. Flushes and
probes will begin after the appropriate
command code is written into this regis-
ter, eidier from the P-Bus or M-Bus.
The System Status Register reports
M-Bus errors that occur during cache
flushes, address probes, and memory
updates caused by cache snoop hits
(snoop copyback ^mr). This register
also reports Ihe results of a probe, show-
ing all the protection and conuol bits that
pertain to the address being probed.
The System Address Register sup-
plies addresses for the probe and cache
flush commands, and to select set and
word addresses for software accesses of
the data cache via the cache diagnostic
ports. The physical addressof an address
probe or of a faulted flush is also returned
in this register.
The System Control Register allows
software to enable parity checking on M-
Bus READs, enable snooping of global
data accesses on the M-Bus to maintain
cache coherency, and select the priority
or fairness protocol when the CMMU ar-
bitrates for the M-Bus.
2. The Local Status and Addiess Regis-
ters are updated by the CMMU when a P-
Bus transaction such as Id (load), st (store),
or xmem (memory exchange) ends in a
fault condition. The status register reports
one of the fault codes: invalid segment
fault, invalid page fault, supervisor viola-
tion, write-protect violation, or bus error.
The address register contains the physical
address of the location where the fault
occurs, except in the case of a write-protact
fault wheie no address will be reported. In
this case the faulted address will be avail-
able in an exception register in the CPU.
3. Memory management legisteis: Su-
pervisor and User Area Pointers, and
B ATC (Block Address Translation Cache)
write ports. These registers form the basis
of twoaliemate logical-to-physical address
tianslation processes. Each of the two area
pointers can be initialized by software to
contain an area descriptor, part of which is
the physical address of a segment descrip
tor table which is accessed during a hierar-
chical table walk (described in detail later)
to perform an address translation. A Tians-
lation Enable bit in each of these area point-
ers, when cleared by software, causes the
CMMU to bypass the translation process
and ireat logical addresses presented on the
P-Bus as physical addresses.
Address mapping for blocks of 512K
bytes of memory are stored in 8 BATC
entries via the corresponding wiite ports.
Each of these entries consists of a 14 bit
CAM (Content Addressable Memory)
containing a logical block address, a 13 bit
RAM containing the corresponding physi-
cal block address, various control and
protection bits pertaining to the block being
mapped, and a Valid bit indicating wheiher
the entry is valid. In addition, two hard-
wired entries piovide direct mapping for
"control memory** which occupies the top
IM bytes of the total 4G bytes address
range.
4. Cache Diagnostic Ports: 4 cache tag
ports, 4 cache data ports, and one cache set
status register. These ports allow software
to access the various components of the
cache as CMMU internal register accesses,
mainly for diagnostic purposes.
68 Mkro Journal
February '89
27
Memory Management
The address space isdivided logically
into a supervisor and user space of 4G
bytes each. The top 1M bytes of ihe
supervisor space is control space re-
served for mapping of control registers of
M-Bus peripheral devices. The CMMU
uses the S/U (supervisor/user) bit which
is part of ihe logical address to select the
appzopriatc space. These spaces can be
mapped to a 4G bytes or smaller physical
space, at ihe block (5 12K bytes), seg-
ment (4M bytes), or page (4K bytes)
granularity.
The page mapping is implemented in
a hierarchy of area, segment, and page
descriptors. Each area and segment de-
scr iptorcon tains the physical address of a
4K byte table pointing to Ihe next level
descriptors. In ihecaseofa pagedescrip-
tor, the adtoss points to a 4k physical
memory space.
The descriptors also include protec-
tion/control bits for the portion of mem-
ory being mapped. Each of the pointers
in the two area descriptors points to a
segment table which contains up to 1024
valid segment descriptors. Each segment
descriptor in turn points to a page table
with up to 1024 valid page descriptors.
Each page descriptor points to the physi-
cal page to which the logical address is
mapped. Figure 3 shows the configura-
tion of the three descriptors.
The memory management portion of
the CMMU efficiently handles logical-
to-physical address mapping described
above via two ATCs (Address Transla-
tion Caches): a BATC (Block ATC) and
a PATC (Page ATC) which functions in
parallel. The BATC, which maps blocks
of512K bytes, is optimized for operating
system uses, or can be used to map any
user space memory that is mapped into
contiguous 512 K byte blocks. The
PATC consists of 56 entries, each con-
sisting of the S/U bit and upper 20 bits of
a logical address stored in CAM, the cor-
responding 20 bit physical address, and
protection/control bits for a page of 4K
bytes. These entries are formed and
replaced by a hierarchical table walk
automatically initiated when an ATC
miss occurs. Figure 4 shows Ihe format
of the ATC entries.
When a memory access is to be per-
fozmed (code fetch or data LOAD/
STORE; code fctchesare the same as data
LOADs fiom the CMMU perspective),
the processor presents a logical address to
the respective CMMU on the P-Bus ad-
dress lines. The CMMU latches this
address and if translation is enabled,
performs simultaneous associative
searches in both of the ATCs. In the
BATC, Ihe upper 14 bits (S/U and 13
MSB) of the incoming logical address is
associatively compared to the logical
address field of the lOeniries. If a match
occurs in an eniry, ihe corresponding
physical block address is issued, concate-
nated wilh ihe remaining lower bits of the
logical address to form the complete
physical address of a word within that
block, which is then used to access
memory. In the PATC, a similar associa-
tive search is performed using ihe upper
20 bits of the logical address and the S/U
bit, yielding ihe physical address of a 4K
byte page. The lower 12 bits of ihe logical
address are concatenated with the page
address to form the physical word address
wilhin that page. If theie is an address
match in both ATCs, the one in the BATC
takes precedence.
If there is no match in either of ihe
ATCs, the CMMU initiates a two-level
table look up in memory to obtain the
physical address as shown in Figure 5.
Fust, a segment descriptor is fetched
from one of ihe segment tables. The
physical addzess of this descriptor is
formed by concatinating the segment
table addiess given in ihe area pointer
selected by the S/U bit and the 10 most
significant bits of the logical address. The
page descriptor is then fetched at the
address given by the concati nation of ihe
page table address in the segment descrip-
tor and bits 12-23 of the logical address.
Finally the physical address of the word to
1 2 1
3 6 t
7
t
S 1
:
SEGMENT TABU BASE ADDRESS
RES
R G
"
RESERVED
1 1 1
? i o 9 e ? e s
PAGE TABLE BASE ADDRESS
HffiH?l* s l?H
1 \ 1
2lOftft76543210
PAGE FRAME ADDRESS
Es|^p G^ RM U^|n!
WT
Wme ThiowftT) Pol«r>
M
Modified Dau
SP
Super* nor Privileged Pioiecuon
V
: U«d Al U*M One* Data
c
Olobal (Shared) Dili
WP
Wro* ProiecU©*
CI
Cache Inh.bii (Non Cicheibte Dm]
V
• Deunpcof VaJidiiy
Figure 3 Area, Segment and Page Descriptors
?•
* I 2 1
*
LPAUM2)
PPA(JMJ)
>;
^ Ml
1
H V
LPA
31
Uf **) Pi#t Add* tit
PFA
11
PTiy»ic*J Ptft Addmi
K « > 2 1
UM
1
PBA
s lr
*
vJiv
LI A Lo|icj) Bkxt Addrtu
WT Wnir Ttooufh folic*
S ; Supcrviior/Ufter Arc* Sckct
C : Olooal (Shared) Dm
flA : Phjrtical P*# r Addftt*
M Mod '. f : Dau
WP Wme Fkotteiten
V Dricnpccx Valid' i>
CI
Cache faftibir (Won Cocftcablc Don)
Figure 4 Address Translation Cache Entries
26
February *89
66 Mkro Journal
be accessed is formed by concatinating
the physical page address in the page de-
scriptor wilh the 12 LSB of the logical
address. Basically, the two groups of 10
MSB of the logical addresses provide
offsets into the segment and page tables,
and the 12 LSB the offset into the physi-
cal page table. The top 20 bits of (he
physical address and logical address plus
the S/U bit, together with all the piotec-
tion/control bits accumulated from the
descriptors arc fonned intoa PATCcntiy
and stored in the PATC, using a FIFO
cntiy replacement policy. The physical
address is concurrently presented to the
cache or to memoiy to obtain the word
requested in the P-Bus transaction.
DATA CACHE
The CMMU data cache has been de-
signed to exploit temporal and spatial
locality, providing 98% or better cache
hit rate in most applications. The cache
fast SRAM allows the CMMU to supply
data to the piocessor at the sustained rate
of one 32 bit word per cycle while there
aic cache hits.
The 16K bytes of high speed SRAM
aie organized as 256 sets of 4 lines each,
with each line containing 4 32-bil woids.
with a 20 bit physical address tag, and
valid and disable bits as shown in Figure
6. The two valid bits indicate the state of
the cache line.
This design, taking advantage of the
fact that the lower 12 bitsofan address arc
the same for both the logical and physical
address, achieves concurrency between
address translations and data cache ac-
cesses: the cache is structured so that
address bits 1 1 -4arc decoded toselectonc
of 256 sets, while bits 2 and 3 select one of
4 words in the set; this decoding can be
initiated and even completed before the
rVfMU has finished the address transla-
tion. Once the translation is done, the
upper 20 bits of the physical address sup
plied by the MMU are associati vcly com-
pared with the 4 physical address tags in
the selected set, andacachehitsignalcd if
a match occurs. The data word is then
P 9U3 LOGCAL AOOA£S3
321 2" 2
|»»T—— fr»H^| ^ t _
©Z3
Figure 5 Two Level Table Walk
68 Micro Journal
February 69
29
Tefeplitme: (615)842-4600 SOUtfl %OSt !Medi(l
5 lObOObbSO
OS-9, tlni'JVLX, 'JL-LX, S'K'DOS
ASSEMBLERS
ASTRUK09 from S.E, Media - A "Siiucaired Assembler for the 6809"
which requires the TSC Macro Assembler.
FLEX. SKDOS, CCF - $9995
Macro Assembler for TSC - The FLEX. SKDOS STANDARD Assembler.
Special - CCF $35 DO; FLEX, SKDOS $50.00
OSM Extended 6809 Macro Assembler from Uoyd I/O. - Provides local
labels. Motorola S- records, and Intel Hex records; XREF. Generate
OS-9 Memory modules under FLEX. SKDOS.
FLEX. SKDOS, CCF. OS-9 $99 W
Relocating Assembler/Linking Loader from TSC. - Use wiih many of the
C and Pascal Compilers.
FLEX. SKDOS. CCF $150.00
MACE, by Graham Trott from Windrush Micro Systems -- Co-Resident
Editor and Assembler; fast interactive A.L. Programming for small to
medium -sized Programs.
FLEX. SK-DOS. CCF - $75.00
XMACE ~ MACE w/Ooss Assembler for 6800/1/2/3/8
FLEX. SKDOS, CCF - $98,00
DISASSEMBLERS
SUPER SLEUTH from Computer Systems Consultants Interactive
Disassembler; extremely POWERFUL* Disk File Binaiy/ASCD
Examine/Change, Absolute or FULL Disassembly. XREF Generator,
Label "Name Changer", and Files of "Standard label Names'* for
different Operating Systems.
Color Computer SS-50 B us (all wfAL. Source)
CCD (32K Req'd) Object Only $49.00
FLEX. SKDOS $99.00 - CCF Object Only $50.00 UniFLEX $100.00
CCF. with Source $99.00 OS-9. $101.00 - CCO, Object Only $5000
68010 SUPER SLEUTH - Similar to 8 Bit Version except written
in"C\
68010 Disassembler $10000 FLEX. UniFLEX, UNIX, XENIX.
MS-DOS, SKDOS, OS 9
OS9168K Object Only $100.00 or with Source $200.00
DYNAMITE* - Excellent standard "Batch Mode" Disassembler. Includes
XREF Generator and "Standard Label" Files. Special OS 9 options
with OS-9 Version.
CCF. Object Only $100,00 - CCO. Object Onty$ 5995
FLEX, SK+DOS . Object Only $100.00 - OS-9. Object Onfy$l 50.00
UniFLEX Object Only $300.00
CROSS ASSEMBLERS
CROSS ASSEMBLERS from Computer System Consultants - Supports
1802/5, Z-80. 6800/1/2/3/8/1 1/HC1 1 , 6804, 68Q5/HC05/ 146805. 6809/
OOUOl, 6502 family. 8080/5. 8020/ 1/2/3 5/C3 5/39/ 40/48/C48/49/C49/50/
8748/49. 8031/5 1/8751.32000 and 68000/68010 Systems. Assembler
and Listing formats same as target CPU's format Produces machine
independent Motorola S-Text Includes Macro Pre-Processor. Written in
- C. 68000 or 6809 + Macintosh* Atari, FLEX, CCF. UniFLEX, OS-9.
XEH1X, UNIX, MSDOS t SKDOS
any object or source each -$50 00
any 3 object or source -$100.00
Set of ALL object $20000 * with source $500.00
XASM Croa Aaembters for FLEX, SK-DOS from S.E. MEDIA -This set
of 6800/1/2/3/5/8, 6301. 6502, 8080/5, and Z80 Cross Assemblers uses
the familiarlSC Macro Assembler Command Line and Source Code
formal, Assembler options, etc., in providing code for target CPU's.
Complete set, FLEX. SKDOS only - $150.00
CRASMB from LLOYD I/O - Supports Motorola's. Inters, ZUog's, and
other's CPU syntax for these 8-Bii microprocessors: 6800,6801. 6303.
6804.6805.6809,6811 (all varieties); 6502, 1802/5. 8048 family, 8051
family, 8080/85. Z8, Z80. and TMS-7000 family. Has MACROS.
Local Labels, Label XREF, Label Length to 30 Chars. Object code
formats: Motorola S Records (text). Intel HEX- Records (text), OS-9
(binary), and FLEX, SK-DOS (binary). Written in Assembler ... e.g.
Ve™ F*tL
CPU TYPE. Price each:
For: MOTOROLA INTEL OTHER CO MPLEPE SET
FLEX9 $150 $150 $150 $399
SK-DOS $150 $150 $150 $399
OS-9/6809 $150 $150 $150 $399
OS-9/68K - — — $432
CRASMB 16.32 from LLOYD I/O - Supports Motorola's 68000. and has
same features as the 8 bit version. OS9/68K Object code Format allows
this cross assembler to be used in developing your programs for
OS-9/68K on your OS 9^6809 computer.
FLEX, SK-DOS, CCF, OS-&6809 $249.00
COMMUNICA TIONS
CMODEM Telecommunications Program from Computer Systems
Consultants. Inc. — Menu-Driven; supports Dumb-Terminal Mode,
Upload and Download in non-protocol mode, and ihe CP/M "Modem?"
Chriistensen protocol mode to enable communication capabilities for
almost any requirement. Written in "C\
FLEX, SK-DOS. CCF. OS-9. UniFLEX, UNIX.XEN/X, MS-DOS,
with Source $100.00 . without Source $50.00
X-TALK from S.E. Media - X-TALK consists of two disks and a special
cable, ihe hookup enables a 6809 SWTPC computer to dump UniFLEX
files directly to the UniFLEX MUSTANG-020. This is the ONLY
current ty available method to transfer SWIPC 6809 UniFLEX files to a
68000 UruFt-EX system. Gimix 6809 users may dump a 6809
UniFLEX file to a 6809 UniFLEX five inch disk and it is readable by
the MUSTANG 020. The cable is specially prepaied with internal
connections to match ihe non-standard SWTPC SO/9 I/O Db25
connectors. A special SWTPC S+ cable set is also available. Users
should specify which SWTTC system he/she wishes to communicate
with the MUSTANG-020. The X-TALK software is furnished on two
disks. One eight inch disk contains S.E. Media modem program C-
MODEM (6809) and the other disk is a MUSTANG 020 five inch disk
with C-MODEM (68020). Text and binary riles may be directly
transferred between the two systems. The C-MODEM programs are
unaltered and paform as excellent modem programs also. X-TALK
can be purchased with or without the special cables, but this special
price it available to registered MUSTANG 020 users only.
X-TALK Complete (cable. 2 disks) $99.95
X-TALK Software (2 disks only) $69.95
X-TALK with CMODEM Source $149.95
XDATA from S.E. Media . A COMMUNICATION Package for the
UniFLEX Operating System. Use with CP/M, Main Frames, other
UniFLEX Systems, etc. Verifies Transmission using checksum or
CRC; Re-Transmits bad blocks, esc.
UniFLEX- $299.99
AiUaMllirUfft*'
0«OS*trSB$**OOS
F-rt£X.U.UaFl£X
CCt.Ctfet CtonpuxwW-y
CCF-CotorCc*voUrFL£X
•OS-! b » Tf d*m*rh of Mkn
South "East Media
S900 CassajutmSmitk 1tf. . tfvyon, 7k 3 7343
•• Shipping ••
Addl»U^A.(mio.S^ltO
For4|P&*fiK»A<ld5%
PordfB AtrwpJI A 44 19%
Or COJH Shlppfof Oalj
i and MMPfoafc-ITLEX mnd tfntH.KX trt TrMtorwrfcurfTthnkal SyiUMi Conwmwt»*Jite«pft8 fr * Trw^umtk of &tr It Srftwin Sytttfw Corp.
30
February '39
68 Micro Journal
Vettpkonc: (bis) Mj-4hoo South TLast < Mtdia
TefeK 5106006630
OS-9, Un&VEX, 'JL'ZX, SX*&Q$
PROGRAMMING LANGUAGES
PL/9 from Windrush Micro Systems — By Giaham Tron. A combination
Editor Compiler Debugger. Direct source- to-objea compilation
delivering fast, compact, re-entrant, ROM -able, PIC 8 A 16 bit
Iniegeri A 6-digit Real numbers for all teal- world problems. Direct
control over ALL System resources, including interrupts*
Comprehensive library support; simple Machine Ode interface; step-
by-step traosr for instant debugging. 500> page Manual with tutorial
guide.
FLEX, SKDOS. CCF . $198.00
PASC from S.E Media - A F1.EX9. SKDOS Compiler with a definite
Pascal "flavor*. Anyone with a tat of Pascal experience should be able
to begin using PASC to good effect in shoit oider. The PASC Package
comet complete with three sample programs: ED (a syntax or structure
editor), EDITOR (a simple, public domain, screen editor) and CHESS
(a simple chess program)- The PASC package curves complete with
source (wnnen m PASC) and documentation.
FLEX, SKDOS $9500
WHIMSICAL from S.E. MEDIA Now supports Rtal NutnUrs "Structured
Programming" WITHOUT losing the Speed and Control of Assembly
language! Single*pasi Compiler features unified, uscr^eCined I/O;
produces ROMaNe Code; Procedures and Modules (including pre-
compiled Modtiks); many "Types" up to 32 bit Integers, 6-cbgu Real
Numbers, unlimited siaed Arrays (vectors only); Interrupt handling;
long Variable Names; Variable Initialization; Include directive;
Conditional compiling; direct Code insertion; control of the Stack
Pointer, etc. Run-Time subroutines insetted as called during
compilation. Normally produce* 10% less code than PU9.
FLEX. SKDOS and CCF - $195 .00
KANSAS CITY BASIC from S.E. Media - Baric for Color Computer OS-9
with many new commands and sub functions adrlpd. A full
implementation of (he IP -THEN-ELSE logic is included, allowing
nesting to 255 levels. Strings are supported and a subset of the usual
string functions such as LEFTS. RIGHTS. M1DS, STRINGS, etc are
included. Variables are dynamically allocated. Also included are
additional features such as Peck end Poke. A must for any Color
Computer user running OS-9.
CoCo OS9 $39.95
C Compiler from Wind rush Micro Systems by James McCosh. Full C for
FLEX, SK-DOS except bitfields, including an Assembler. Requires
the TSC Relocating Assembler if user desires to implement his own
Libraries.
FLEX. SKDOS. CCF . S295J0O
C Compiler from InlroJ - Full C except Doubles and Bii Fields.
streamlined for the 6809. Reliable Compiler; FAST, efficient Code.
More UNIX Compatible than most.
FLEX , SKDOS, CCF, OS-9 (Level II ONLY), UniFLEX . $575.00
PASCAL Compiler ftt>m Lucldata ~ ISO Based P-Code Compiler.
Designed especially for MiaoaxnpHer Systems. Allows linkage to
Assembler Code for maximum flexibility.
FLEX. SK-DOS and CCF $190.00
OmegaSofl PASCAL ttvm Certified Software ~ Extended Pascal Tor
systems and real-time programming.
Native 6B000/68020 Compiler, $575 for base package, options available.
For OS-9£8000 and PDOS host system.
6809 Cross Compter (OS-9/o8000 host) $700 for complete package.
KB ASIC - from S.E. MEDIA - A "Native Code" BASIC Compiler which is
now Fully TSC X BASIC axnpatible. The compiler compiles to
Assembly Language Souroe Codx. A NEW, ttnamliraad , Assembler is
now included allowing ihe assembly of LARGE Compiled K*BAS1C
Programs. Conditional assembly reduces Run-time package.
FLEX. SK-DOS. CCF t OS-9 Compiler /Assembler $99.00
CRUNCH COBOL from S.E. MEDIA - Supports large subset of ANSH
Uvel 1 COBOL with many of the useful Uvd 2 features. Full FLEX.
SKDOS File Structures, including Random Files and the ability to
process Keyed Files. Segmem and link large programs at runtime, or
implemented as a set of overlays. The System requires 56K and CAN
be run with a single Disk System. A vety popular product,
FLEX, SKDOS. CCF - $99.95
FORTH from Steams Electronics ~ A CoCo FORTH Programming
language. Tailored to the CoCo! Supplied on Tape, tiansleiabk to
disk. Written in FAST ML Many CoCbfuncticM (Graphics, Sound,
etc.). Includes an Editor, Trace, etc. Provides CPU Cany Rag
accessibility . Fast Task Multiplexing, Clean Interrupt Handling, etc. for
the "Pro". Excellent "learning" tooll
Color Computer ONLY * $58.95
FORTHBU1LDER is a stand-alone target compiler (cros scorn pile r) for
producing custom Forth systems and application programs.
All of the 83-ctandani defining words and central oruaures are
«ea*niztt» by FORTHBUILDER.
FORTHBUO-DER is designed to behave as much as possible like a
resident Foith inteipreter/compiler, so that most of the established
techniques for willing Forth code can be used without change.
like compilers for other languages, FOR11IBUILDER can operate in
"batch mode".
The ovnpiler reepgniu and emulates target names defined by
CONSTANT or VARIABLE and u readily extended with "compile-
lime" definitions to emulate specific target words.
FORTIIBU1LDER is supplied as an executable command file
configuied for a specific host system and target processor. Object
code pioduccd from ihe accomp ying model source code is royalty-
free to licensed users.
FLEX. CCF. SK-DOS- $99.95
EDITORS & WORD PROCESSING
JUSr from S.E. Media - Text Formatter developed by Ron Anderson; for
Dot Matrix Printers, (xwidea many unique features. Output
"Formatted" Text to ihe Display. Use the FPRINT.GMD supplied for
producing multiple copies of ihe Toenailed" Text on ihe Printer
INCLUDING IMBEDDED PRINTER COMMANDS (very useful at
other times also, and woith the price of ihe program by itself). "User
Configurable 4 * for adapting to other Printers (comes set up for Epson
MX-80 with Graft rax); up to ten (10) imbedded "Printer Control
Cornmandj". Compensate* for a "Double Wi Ah" printed tine. Includes
the normal line width, margin, rndaa, paragraph, spice, vertical skip
lines, page length, page raimbcrmg. centering, fiD. justification, etc
Use with PAT or any other editor.
* Mow supplied as a iwo disk set:
DisktU: JUm.CMD object file,
JUSniXT PL9 source;FLEX, SK-DOS - CCF
Disk $2: JUSTSC object and source in C:
FLEX, SKDOS, OS 9, CCF
The JTSC and regular JUST C source arc two separate programs. JTCC
compiles to a version that expects TSC Word Processor type
commands, (pp ,sp .ce etc) Great for your older text files. The C
AtftlbtMtj t
o . o**, a . sifooa
r-rux r u.Ukartjrjc
cca . osaw c* m ay oa-t
CCF • Otlsr Cmmmmm ¥\Xt
South "Last Media
S900 CaxajidmSmiUi %& • Tfcrsv*. 7k 37343
•• Shipping •♦
A4al»UULii^LfXja)
or cx> sx tat**** o»b
•O*-* lis Thaw k of Mkfimii ftftd ft(sUmlft.4fLfcl Bad UnffLIX if* Trftdnnarki aTTftthnkal KjUtrni OMiHlUAt»-»S|L*DOS I* a TndtiMrk <d Bur -K Mtwari
68 Mcra Journal
February 89
31
Tefepfwru: (615)042-4606 South *EaSt tMedia
•rde\: 5106006630
OS-9, llniyL'LX, 'J L'LX, S'K*'DOS
source compiles 10 a standard syntax JUST.CMD object file, tiling
JUST syntax (,p ,u ,y etc) With ail JUST functions plus several
uaduuonsJ pi inter forraaoing functions. Reference the JUS1SC C
source. For those wanting an excellent BUDGET PRICED word
proceuor . wiih features none of the other* have. This is ill
Dirk (1) • PIS FLEX only. FLEX. SK-DOS <ft CCF - 149.95
Disk Set (2) • FLEX, SKDOS A CCF <ft OS-9 (C version) - $69.95
05 9 68K000 complete with Source - 179.95
PAT from S.E. Media - A full feature screen oiiented TEXT EDITOR with
ail lie best of "PIE™". For those who swore by and loved only PIE,
this is for you] All PIE features and much motet Too many features to
list And if you dofrt like ihese. change or add your own, PL-9 source
furnished. "C" source available soon. Easily configured to your CRT.
with special config section.
Regular FLEX. SKDOS $129.50
• SPECIAL INlRODUCnON OFFER • $79.95
SPECIAL PAVJUST COMBO (with source)
FLEX,SK*DOS $99.95
OS-9 68K Version $229.00
SPECIAL PAVJUST COMBO 68K $249.00
Not*: JUST in "C" source available for OS-9
CEDRJC from S M. Media - A screen oriented TEXT EDITOR with
availability of 'MENU* aid Macro definitions, configurable petmaneni
definable MACROS - all standard features and ihe fastest 'global'
functions in the west. A simple, automatic terminal cotifig program
makes this a real 'no haxsei' predate! Only 6K in size, leaving the
average system over 165 sactors for text buffer - appx. 14.000 plus of
free moTKwy! Extra line for programming as well as text.
FLEX. SKDOS $69.95
BASEDIT from S.R Media • A TSC BASIC or XBASIC screen editor.
Appended to BASIC or XBASIC, BAS-ED1T is tmnsparcro u> normal
BASIC/XBASJC operation. Allows editing while in BASIC/XBASIC,
Supports the following fxmcDm»: OVERLAY. INSERT and DUP
LINE. Make editing B ASIC/XB ASIC piograms SIMPLE1 A GREAT
lime and effort saver. Programmers love itf NO more retyping entiie
lines, etc Complete with over 25 d liferent CRT terminal configuration
ova lays,
FLEX.CCF.SK DOS $39.95
SCR EDITOR III from Windniah Micro Systems - Powerful Screen-
Oriented Editor Word Processor. Almost 50 different commands; over
300 pages of Documentation with Tutorial Features Multi-Column
display and editing, "decimal align" columns (AND add them up
automatically), multiple keystroke macros, even/odd page headers and
focarn, imbedded primer control codes, all justillcatiois. "help"
support, store common ecmm*mJ series on disk, etc. Use siapplied "set-
ups", or remap the keyboard to your needs. Except for proportional
printing, this package will DO IT ALLI
6800 or 6809 FLEX. SKDOS or SSBDOS. OS-9 - $175.00
SPELLB "Computer Dictionary" from S.E. Media - OVER 150,000 words!
Look up a word from within your Editor or Word Processor (with (he
SPH.CMD Utility which operates in the FLEX. SKDOS UCS). Or
check and update the Text after entry; ADD WORDS to the Dictionaiy,
"Rag" questionable woids in the Text. "View a word in context" before
changing or ignoring, etc SPEU.B first checks a -Common W«d
Dictionary", then the normal Dictionaiy. then a "Personal Word List",
and Rnally, any "Special Word List" you may have specified. SPELLB
also allows the use of Small Disk Stotage systems.
FLEX. SKDOS and CCF - $129.95
STYLO-GRAPH from Great Plains Computer Co. ~ A full-semen oriented
WORD PROCESSOR - (uses the 51 x 24 Display Semens on CoCo
fLEX/SK-DOS, or PBJ WoidpakX Full screen display and editing;
supports the Daisy Wheel prupurojxial pi inters.
NEW PRICES 6809 CCF and CCO - $99.95.
FLEX. SKDOS or OS-9 - $179,95. UniFLEX. $299.95
STYLO-SPELL from Great Plains Computer Co. ~ Fast Computer
Dictionaiy. Complements Stylograph.
NEW PRICES 6809 CCF and CCO . $69.95.
FLEX, SKDOS or OS-9 - $9995. UniFLEX- $149.95
STYLO- MERGE from Great Plains Computer Co. - Merge Mailing List lo
"Form" Letters. Print multiple Files, etc., through Stylo
NEW PRICES 6809 CCF and CCO. $59.95.
FLEX. SKDOS or OS-9 . $79.95. UniFLEX- $129.95
STYLO-PAK — Giaph + Spell + Merge Package DeslHI
FLEX .SKDOS or OS-9 - $329.95. UniFLEX - $U9.95
OS-9 68000 $695 DO
DATABASE ACCOUNTING
XDMS from vYe4rbe4flr Applied Boshes* Systems
FOR 6809 FLEX or SKDOS (W)
Up to 32 groupofietds per record I Up to 12 character file name if Up to 1024
byte records! User defined screen and print coniroll Process files! Form
Hies! Conditional execution f Process chaining! Upward/Downward file
Linking I Ftle joining! Random fxk virtual pagingl Built in utililiesf Built
in text line editor I Fully session oriented r enhanced forms I Boldface,
Double widih, tubes and Underline supported f Written in compact
structured assemblerl Integrated for FAST execution f
XDMS-IV Data Management System
XDMSIV it a brand new approach to data management It not only permits
users to describe, enter and retrieve data, but also to process entire files
producing cucuvniaed reports, screen displays and file output
Processing cot consist of any of a set of standard high level functions
including record and field selection, sorting and aggregation, lookups in
other files, special processing of record subsets, custom report
formatting, totaling and subtotaling, and preienUbon of up to three
reined files as a "database" on user defined output reports.
POWERFUL COMMANDS f
XDMS IV combines the functionality of many popular DBMS software
systems wiih a new easy to use command set into a single integrated
package. We've included many new features and commands including a
set of general file utilities. The processing command i are Input - Process -
Output (fPO) which allows almost instant implementation of a process
design.
SESSION ORIErfTED*
XDMS-JV is session oriented. Enter "XDMS" and you are in instant
command of all the features. No more waiting for a command to load in
from diskl Many commands are immediate, such a* CREATE (file
definition), UPDATE (file editor), PURGE and DELSI E (utilities).
OUiers are pusu commands which are used to create a user paxes*
which is executed with a RUN command. Either may be entered into a
"process" file which is executed by an EXECUTE statement. Processes
may execute other processes, or themselves, cilher conditionally or
uncondiiksnJIy. Menus and screen prompts are easily coded, and entiie
user applications can be run without ever leaving XDMS-IV
AnlkbOtrfUttftdi
O.0S'*.S-SK*DO9
F«FLKX,U«l*nU
CCam&kwCmifim QS.»
OCT . C»tof Ctrngmlm rut
South 'Lost Orizdia
$900 CauandTaSmitfi %i. * tfbaon, Tn. 37343
•• Shipping ••
Add 1% VSJL (nta. 91H)
Nn|p|Kvrfife«AddS%
Fot%» AVKWli Add 19%
y OrCJXJks*rr*e.o*b
H «,» li m Tridimirk of Mkrmrr md Mo«n«»ta.-KUtX .M t'niyLKX »ft Tn
i Sjwumt r>n».lUi>ti »SK*PQS t* ■ Tr»d—rfc «f fU^K S*ft— f lyrttiw Off,.
32
February 89
68 Micro Journal
'Ttfcpfume: (615) 842-4600 SOUtH 'EOSt 9Atdia
*re(e\: 5106006630
OS-9, 'Uni'JL'LX, 'JL'LX, S'K''DOS
>
TVS EASY TO USBt
XDMS-1V keeps data management limplet Raiher than design a complex
DBMS which hidea the true nam re of lhe data, we kept XDMS-W file
oriented. "Hie user view of daia rtlatiorohjps ii prexenied in reports and
•CTcen output, while the actual data reside* in easy to maintain file*.
Ihia aspect pennits aisujtniza) presentation and reports without
complex redefinition of the database files and strueturc. XDMS-IV may
be used for a wide range of applications from simple record
management systems (addresses, inventoiy ...) to integrated daubasc
systems (order entry, accounting...)
The possibilities arc unlimited,..
FOR 6809 FLEX or SK-DOS^'ft* Disk) $249,95
UTILITIES
6A5kD9 XRef from S.E. Media - This Basic09 Cross Reference Utility is a
Baaic09 Program which will produce a "pi city printed" listing with each
line numbeied, followed by a complete cross referenced listing of all
variables, external pro^Airei, and line numbers called. Also include! a
Program List Utility which outputs a fast "pretty printed" listing with
line numbers. Requires Basic09 or RunB.
OS-9 A CCO object o*ty - $39.95; with Source - $79.95
BTree Routines - Complete set of routines to allow simple implementation
of keyed files * for your programs - running under Basic09. A real time
saver and should be a part of every serious programmers tool-box.
OS-9 & CCO object only * $89.95
Lucidata PASCAL UTILITIES (Ri^uinsi Pascal vcr 3)
XREF ~ produce a Croti Reference Listing of any text; oiieoted to Pascal
Source.
INCLUDE - Include other Rles in a Source Text, including Binary -
unlimited nesting.
PROFILER - provides an Indented, Numbered, "Siwcjogram* of a Pascal
Source Text File; view the ovenll structure of large programs, program
integiity, etc. Supplied in Pascal Source Code; requires compilation.
FLEX, SK.D0S, CCF .~ EACH 5" . UOJOO. 8" - $50.00
DUB from S.E, Madia - A UnlFLEX BASIC decompiler Re Create a
Source Lilting from UniFLfiX Compiled basic Programs. Works with
ALL Versions of 6809 UniFLEX basic
VniFLEX - $219.95
LOW COST PROGRAM KITS rVooi Southeast Media The following kits
are available for FLEX. SK-DOS on either 5" or 8* Disk.
1. BASIC TOOL-CHEST $29.95
BLISTER.CMD: preoy printer
UNEXREF.BAS: line cross -reference r
REMPACBAS, SPCPAC.B AS, COMPAC.BAS:
remove superfluous code
STRIP.BAS: lupcrflvous line-numbers stripper
2. FLEX, SK-DOS UTILITIES KIT $39.99
CATS. CMD; alphabetically-sorted duroory listing
CATDCMD: dale-sotted diieoory listing
COPYSORT.CMD: Hie copy, alphabetically
COPYDATE.CMD: Hie copy, by date^oider
FIL£DATE CMD: change file creation date
INFOCMD <* INPOGMX.CMD): tells disk attributes & commits
REUNKCMD (& REUNK82): re-oider* fiagmented free chain
RESQ.CMD: undeletes (recovers) a deleted file
SEC1CRS.CMD: show sector order in free chain
XLCMD: super text lister
3. ASSEMBLERS/DISASSEMBLERS UTILITIES $39.95
UNEFEED.CMD-. modulariie' diiasiembler output
MATH.CMD: decimal, hex, binary, octal convenient
A tables
SKIP.CMD: column stripper
4. WORD - PROCESSOR SUPPORT UHLITIES $49.95
FULLSTOP.CMD: checka for capitalization
BSTYCTTBAS CBAC): Stylo to dot-matiix piinter
NECPRTNT.CMD: Stylo to dot-matrix printer filter code
5. UHLITIES FOR INDEXING $49.95
MENU .B AS: selects requited program from list below
INDEX.BAC: word index
PKRASES.BAC: phrase index
CONTENT.BAC: table of contents
INDXSORT.BAC: fast alphabetic sort routine
FORMATTER. B AC: produces a 2-column formatted index
APPEND.B AC: append any number of files
CHAR.BIN: line reader
B ASIC09 TOOLS consist of 21 subroutines for Basic09.
6 were written in C Language and the remainder in assembly.
All lhe routines are compiled down to native machine code whicb
makes them fast and compact.
1. CFILL - fills a string with characters
2. DPEEK - Double peek
3. DPOKE - Double poke
4. FPOS - Current file position
5. FSIZE ~ File size
6. FrRIM - removes leading spaces from a siring
I. GETPR - returns the current process ID
g. GtTrOPT - gets 32 byte option tactic
9. GETUSR - gets the user ID
10. GTIME - gets the time
I I. INSERT - insert a suing into another
12. LOWER — converts a string into lowercase
13. READY - Checks for available input
14. StTrPRIOR ~ changes a process priority
15. StTrUSR ~ changes the user ID
16. StTrOFr - set 32 byte option packet
17. STIME - sets the time
18. SPACE - adds spaces to a suing
19. SWAP — swaps any two variables
20. SYSCALL « system call
21. UPPER — converts a string to uppercase
For OS-9 - $44.95 - Includes Source Code
SOFTOOLS
lhe following programs are included in object form for immediate
appfcgaiion. PL/9 source code available for customization.
READ-ME Complete instructions for cnilial set-up and operation. Can even
be primed out with the included text processor.
CONFIG one rime syitem configuiation.
CHANGE changes words, characters, etc. globally to any text type file.
CLEANTXT converts text Kief to standard FLEX, SK-DOS files.
COMMON compare two text Tiles and reports differences.
COMPARE another check file that reports mis-matched lines.
CONCAT similar to FLEX , SK-DOS append but can also list files to icreen,
DOCUMENT for PL/9 source files. Very useful in examining parameter
passing aspects of procedures.
O.O^f, S*SKt>OS
r.FLlX.U.UirifLEi:
CCS . Oolur GoRp«Ur OS-9
CCF m Crior Comauttr FVW
South "Last Media
5300 dSJauCraSmith Vtf. • Xvyon, Tn, 37343
•• Shipping ••
A64 2% VSJL (mJft. USt)
fb«lB» 9*t±* M4 5%
Vbnttaa Airmail A«4»%
Or C0JX SblpplmjOMy
•OS-* ba Tn4**mr* ofMkfgwmn «d Motarob «TLEX iim! UhIKLEX irt TreAtmrfciof T«hnfc*] Sy««ni c oniJi»nt>.«SK«POS It * Tradawrit «f 8Ur- K ScTfiri Sj«*— Off,
68 Micro Journal
February 89
Trfcpfume: (6 1 5) $42-4600 SOU tfl 'EdS t Media
Telex: 5106006630
OS -9, Wti'JCLX, 'JL'LX, S'K'WS
ECHO echo* lo either screen or file.
FIND an improved find command with "poller*" matching and wildcards.
Very useful.
HEX dimipi files in both hex and ASC3L
INCLUDE a file copy prog ram ihat will accept "includes" of other disk files.
KWIC allows routing each word, on each line to the beginning. Veiy useful
in a son program, etc.
L1STD1R a directory listing program. Not super, but better than CAT.
MEMKORT a high-speed text file sorter. Up to 10 fields may be toned.
Veiy fast Very useful.
MULT1COL width of page, number of columns may be specified. A
MUST1
PAGE similar to UST but allows for a page header, page width and depth.
Adjust for CRT screen or printer as sei up by CONFIG. A vejy smart
print driver. Allows printer control commands.
REMOVE a fast file deleter. Careful, no prompts issued. Zap, and its gone!
SCREEN a semen listing utility, Word wraps text to fit screen. Screen depih
may be altered at run time.
SORT a super version of MEMSORT. Ascending/descending order, up 10 10
keys, case over-ride, son on n' h wojd and son on characters if file is
small enough, sons in RAM. If large file, son is constrained lo size of
your largest disk capacity.
TPROC a small but nice text formatter. This is a complete formatter and has
functions not found in other formatters.
TRANS LIT sons a file by x keyfields. Check* for duplications. Up to 10
key files may be used.
UNROTATE used with KWIC this program reads an input file and unfolds
it a line at a time. If the file has been sorted each word will be
presented m sequence.
WC a word count utility. Can count words, characters or lines.
NOTE; (his Mi of utilities! cooatsto of 6 5.1/4" disks or 2 IT disks, with
source (PL9). 3 5.1/4" disks or I 8" disk without source.
Complete set SPECIAL INTRO PRICE:
5-1/4" with source FLEX or SK-DOS - $12995
without source - $79.95
S" wiih source - $79.95 - without source $4995
FULL SCREEN FORMS DISPLAY from Computer Systems Consultants -
TSC Extended BASIC program supports any Serial Terminal with
Cursor Conirol or Monory-Mftppcd Video Displays; substantially
extends ihe capabilities of the Program Designer by providing a taole-
djiven method of describing and using Full Screen Displays.
FLEX . SK-DOS and CCF, UniFLEX . $25,00. with Source . $50.00
SOLVE from S.E. Media » OS-9 Levels I and Q only. A Symbolic Object/
Logic Vesication & Examine debugger. Including inline debugging,
disassemble *nd assemble. SOLVE IS THE MOST COMPLETE
DEBUGGER we have teen for the 6809 OS 9 series! SOLVE does it
alii With a rich selection of monitor, assembler, disassembler,
crrvisonmenial. execution and other miscellaneous eommands. SOLVE
is the MOST POWERFUL tool-kit item you can ownl Yet, SOLVE is
simple to use 1 With complete documentation, a mapl Everyone who
has ordered this package has ravadf See review - 68 Micro Journal -
December 1985. No 'blind' debugging here, full screen displays, rich
and complete m in formation presented. Since review in 68 Micro
Journal, this is our fastest moverl
Until Allordf OS 9 $69,95
DISK UTILITIES
OS9 VDtsk from S.E. Media -- For Level I only. Use the Extended
Memory capability of your SWTPC or Gimix CPU card (or similar
format DAT) for FAST Program Compiles, CMD exaonion, high speed
interprocess communications (withoia pipe buffers), etc - SAVE that
System Memory. Virtual Disk sue is variable in 4K increments up to
960K. Some Assembly Required.
Level! OS -9 object $79.95; with Source $149.95
O-F from S.E. Media -- Written in BASIC09 (wiih Seurcc), includes:
REFORMAT, a BASIC09 Program that reformats a chosen amount of
an OS 9 disk to FLEX, SK-DOS Format so it can be uied normally by
FLEX. SK-DOS; and FLEX, a B ASIC09 Program that does the actual
read or wiite function to the special O-F Transfer Disk; user-friendly
menu driven. Read the FLEX, SK-DOS Oirecipry, Delete FLEX,
SK-DOS Files, Copy both directions, etc. FLEX. SK-DOS users use
the special disk just like any other FLEX, SK-DOS disk
OS~9 . 6809168000 $79.95
LSORT from S.E, Media - A SORT/MERGE package for OS-9 (Level I &
II only).. Sorts records with fixed lengths or variable lengths. Allows
for either ascending or descending son. Sorting can be done in either
ASCD sequence or alternate collating sequence. Right, left or no
justification of data fields available. LSORT includes a f d I set of
comments and errors messages.
OS-9 $8500
HIER from S.E. Media - HIER is a modem hierorchal storage system for
users under FLEX, SK-DOS. It answers the needs of thotc who have
hard disk capabilities on their systems, or many files on one disk - any
sue. Using HIER a regular (any) FLEX, SK-DOS disk (8- 5- hard
disk) can have sub diraaories. By this method the pivUrmi of
assigning unique names to files is Icii burdensome. Different Hies with
the exact same name may be oo the same disk, as long as they are in
different directories. For the Winchester user this becomes a musL Sub-
directories are the modem day solution thai all current large systems
use Each directory looks to FLEX, SK-DOS like a regular file,
except they have lite extension \DIR\ A full set of directory handling
programs are included, making the operation of HIER simple and
straightforward. A special install package is included to install HIER to
your pellicular version of FLEX, SK-DOS. Some assembly required.
Install indicates each byte or reference change needed. Typically - 6
byte changes in source (furnished) and one assembly of HIER is all ihat
is je<ntied. No programming required I
FLEX - SK-DOS $79.95
COPYMULT from S.E. Media - Copy LARGE Disks to several smaller
disks. FLEX, SK-DOS utilities allow the backup of ANY size disk to
any SMALLER size diskettes (Hard Disk to floppies, 8* to 5", etc.) by
simply inserting diskettes as laquesied by COPYMULT. No fooling
with directory deletions . etc COPYMULT.CMD understands normal
"copy" syntax and keeps up wiih files copied by maintaining directories
for both host and receiving disk system. Also include* BACKUP.CMD
to download any size "random" type file; RESTORE.CMD to
restructure cqpicd " random** fDea for coding, or nxopymg back to the
host system; and FREEUNK.CMD as a "bonus" utility that "relinks"
the free chain of floppy or hard disk, eliminating fragroentatkei
Completely documented Assembly Language Source files included. ALL 4
Programs (FLEX. SKDOS. 8" or 5 m ) $9950
A«mlbMUCJt
O-OtS-M-SXfXM
r-FLEX.U- UftVTEX
t't S - < olor tamputmt OC-t
crj - c*m o«nput*r nix
South "Last Media
$900 CassondmSmitk %£. . #Lrj<m, Tn. 37343
•• Shipplr* ••
Add 2% USJL <***. XUt)
***%■ Sanaa *dd 5%
For*l|»AJniBri»A*die»
OrGO\I>.S1)lfc*b«0«b
*rw-» !■ ■ Trid*tTMfh ofMkf.nnft md Mo««rol*f1,KX and irnlPlTJC irt Tradrrn-rki ofT«-hptc«|
Pjgasai Ca»iHiat*.*SK*PO» It m Trademark of St«-»K S<4tm*t* Sjifami Cwy.
34
February 89
68 Micro Journal
Telephone: (615) 842-4600 SoUtfl f EOSt ?Media
'fete*: $106006630
05-9, llnffOEX, 'JL'LX, S'K'&OS
COPYCAT from Luddata - Pascal NOT required. Allows reading TSC
Mini-FLEX. SK-DOS, SSB-DOS68, and Digital Research CP/M Disks
while operating under SK-DOS . FLEX 1.0. FLEX 2 0. or FLEX 9,0
with 6800 or 6809 Systems. COPYCAT will not perform miracles, but.
between the program and the manual, you stand a good chance of
acconpliihzng a transfer. Also includes same Utilities to help oul
Programs suppliad in Modular Source Code (Assembly Language) to
help solve unusual problems.
FLEX, SK-DOS and CCF 5 M $50J00 FLEX. SK-DOS 8*165.00
VIRTUAL TERMINAL from S.E. Media - Allows one terminal lo do the
work of several. The user may start as many as eight tasks on one
terminal, under V1R1VAL TERMINAL and switch back and forth
between tasks at will. No need to exit each one; just jump back and
foith. Complete with configuration program. The best way to keep up
with those background programs.
6809 GS-9 * CCO - objact only - S49.95
FLEX, SK-DOS DISK UTILITIES from Computer Systems Consultants ~
Eight (8) different Assembly Language (with Source Code) FLEX*
SK-DOS Utilities for every FLEX. SK-DOS Users Toolbox: Copy a
File wiib CRC Emxi; Test Disk for errors; Compare two Disks; a fast
Disk Backup Program; Edit Disk Sectors; Linearize Free.Qiain on the
Disk; prim Disk IdotfiTic*rion; and Son and Replace the Disk Diiectory
(in sorted order). ~ PLUS ~ Ten XBASIC Piograms including: A
BASIC Resequencer with EXlttAs over "RENUM" like check for
missing label definitions, processes Disk to Disk instead of in Memory,
etc. Other programs Compare. Merge, or Generate Updates between
two BASIC Programs, check BASIC Sequence Numbers, compare two
unscquenced files, and 5 Programs for establishing a Master Dimctoiy
of sevenl Disks, and sorting, selecting, updating, and printing paginated
listings of these files. A BASIC Cross- Reference Program, written in
Assembly Language, which provides mn X-Ref listing of the Variables
and ReurvttJ Woids in TSC BASIC. XBASIC. and PRECOMPILER
BASIC Programs.
ALL Utilities incite Source (either BASIC or AL. Source Code).
FLEX. SK-DOS and CCF - 150J00
BASIC Utilities ONUtfor UmFLEX - $30.00
MS-DOS to FLEX Transfer Utilities to OS-9 For 68XXX and OOOS-9
Systems Now READ - WRITE . DW - DUMP - EXPLORE FLEX &
MS-DOS Disk. These Utilities come with a itch set of options allowing
the transfer of text type Hies fromAo FLEX & MS DOS disks. *CoCo
systems icquiic the D.P. Johnson SDISK utilities and OS-9 and two
drves of which one must be a "host" floppy,
•CoCo Version: $69.95 68XXX Version $99.95
MISCELLANEOUS
TABULA RASA SPREADSHEET from Computer Systems Consultants -
TABULA RASA is similar to DESKTOP/PLAN; provides use of
tabular aom pulaikr schemes used for analysis of business, sales, and
ecvvKJinJc audition*. Menu -driven; extensive report-generation
capabilities. Requites TSCs extended BASIC
FLEX, SK.D0S and CCF. UniFLEX. $50jQO, with Source . $100.00
DYNACALC -- Electronic Spread Sheet for the 6309 and 68000.
UniFLEX- $395J00. FLEX, SK-DOS. OS 9 and SPECIAL CCF - S250W
OS 9 68K- $299.00
FULL SCREEN INVEVrORY/MRP from Computer Systems Consultants
Use the Full Screen Inventory System/Ma tefimis Requirement Planning
for maintaining inventories. Keeps item field file in alphabetical order
for easier inquiry. Locate and/or print records matdxing partial or
complete item, orscripion. vendor, or anritaaes; find backorderor
bdow stock levels. Printouts in item or vendor order. MRP capability
for the maintenance and analysis of Hierarchical assemblies of items in
the inventory file. Requires TSCs extended BASIC.
FLEX, SK-DOS and CCF. UniFLEX - $S0D0, with Source - $100.00
FULL SCREEN MAILING LISr from Computer Systems Consultants -
The Full Screen Mailing List System provides a means of maintaining
simple mailing lists. Locate all record* matching on partial or complete
name, city, state, zip. or attributes for lisiings or Labels, etc, Requires
TSCs Extended BASIC.
FLEX. SK-DOS and CCF. UniFLEX- $50J00. with Source - $100J0Q
DIET.TRAC Forecaster from &£. Madia - An XBASIC program that plans
a diet in terms of either calories and percentage of carbohydrates.
proteins and fats (C P G%) or grams of Carbohydrate. Ptotein and Fat
food exchanges of each of the six basic food groups (vegetable, bread.
meat, skim milk, fruit and fat) for a (pacific individual. Sex, Age,
Height, Present Weight, Frame Size. Activity Level and Basal
Metabolic Rate for normal individual are taken into account Ideal
weight and sustaining calories for any weight of the above individual
are calculated. Provides number of days and daily calendar after weight
goal and calorie plan is determh»cd.
FLEX. SK.D0S - $59.95. UniFLEX - $89.95
GAMES
RAPIER - 6809 Chess Program from S.E. Media ~ Reuuiies FLEX.
SK-DOS and Display i on Any Type Terminal Features: Four levels of
play. Swap side. Pea* scoring system. Two display bowls. Change
skill level Solve Checkmate problems in 1-2-3*4 move*. Make move
and swap ckfte*. FT*y white or black. This b osse of the strongest
CHESS program running on anj mkrocotttpufcr, estimated USCF
Rating 1600+ (better than most 'club' players at higher levels)
FLEX. SK-DOS and CCF - $79.95
NEW
MS-DOS/FLEX Transfer Utilities For 68XXX and CoCo* OS-9 Systems.
Now Read. Write. DIR, Dump and Explore FLEX A MS-DOS Disks.
Supplied with a rich set of options to explore and transfer text type files
fromAo FLEX and MS-DOS disks. •CoCo OS 9 requires SDISK
utilities & two floppy drives.
CCO $6995 63XXX OS-9 $99.95
MS-DOS and Macintosh
Software at Discounted Prices
"Call for prices, U"U be worth the savings. "
(615) 842-4600
O • OS <f, S - Sfc*D03
r«n.tx,iuut«iu
CO m Cekm ni isi T Q§.t
cry ■ dm- cime mn nsx
South 'East Media
5900 CanandmSmUk tf. ■ 9fvo<m, Tn. 37343
r rfl.»arr r ire"
•• Shipping ••
am 1% lLa\A. (ps«. tut)
ft*4pSarfe»A44S«
fWrttjp Akn^ AM IS*
OrCODiSaiSf^Oat
*Qt*» ta ■ TraJffmrit of Mknwun in4 Mp4«»rob ^fTEX vr\4 L'ntFLEX »r* Tr*4*m*rln of T^Mta! Sjrtn
MltBMto-'^K'DOS toiTradwMrfc ofSurU Software gymim Oar*.
66 Micro Journal
February 69
35
Figure 6 Cache Organization
»l**0' ?
Lope*' AAJ'#v«
Ptxjs interlace
J-T^
#hVi it
1
•
r .'*
r
f
*
y
4 ■
Ptryicat
a:tiil|flj
priKtmKi' ♦ •
Mb** 3
JL
A00r*f * B H 3 ?
(Wotf S#lKtl
SUM a.
0*t*Lr**3i
supplied to ihc P-Bus interface to be
returned to the processor.
The line structure of the cache,
while providing prefetching of code/
daia, makes best usage of M-Bus burst
mode (block transfer) and nibble-
mode memories. The number of lines
per set also can drastically reduce the
probability of replacing a cache line
that is going to be accessed in the
immediate future.
The cache follows ihc LRU (Least Re-
cently Used) line replacement rule
wilhin a set. It keeps a record of the
exact sequential order of line accesses
in a set so lhat the line that is least
recently used can be replaced when a
cache miss occurs. LRU logic updates
the line use order each lime a line is
accessed or replaced. When a hit oc-
curs, the line that is accessed is marked
as most recently used, and ihc order of
the 4 lines in ihc set is recomputed.
To support fault tolerance, each
cache line can be tested and disabled
via the disable bit by system software,
if found defective.
HH3< 1?
I
MB* *m«mx
Cache States
And Memory Coherency
The CMMU offers two methods for
updating memory; copyback and
writethrough. In ihc writcihrough
mode, a cache line is written back to
memory every time it is modified,
keeping memory always consistent
wilh ihc cache content The M-Bus
uaffic can be high when ihc cache
functions in this mode. The copyback
policy can be used 10 maximize mem-
ory performance and to reduce bus
traffic.
Under this policy, cache writes are
written to memory the first time the
data in the cache is written (write
once); subsequent write to the same
location arc not written to mcmoiy
until the cache line is flushed (invali
dated or replaced). Ibis delay in up
dating mcmoiy means that the contcn
of memory is not always consistcn
wilh lhat of the cache, making it ncccs
sary to have a bus monitoring mccha
nism that can tell the cache when a bus
master tries to access stale global
(shared) daia in memory. This allows
the cache to update memory before
allowing oihcr bus masters to try and
access the shared data again. The
CMMU supports such M-Bus "snoop-
ing" capability, to be described in de-
tail in a later section.
The copy back policy requires lhat
r* i
1
I
/
*
,i i i
\M
1
"
*
jtm
Lew
Wot: ?
OutM>
Lias 1
MM
l™?
.
D**t*>
Lm*3
Vim
only one cache in a muliicachc system
has a modified copy of any global data.
The two valid bits pertaining to a line
define the four states of a line as fol-
lows:
1 1 _ Invalid: The line contains
no meaningful daia
10_ Shared Unmodified: Other
caches may have a copy of ihis line,
and ihc line is not modified with re-
spect to memory.
00 _ Exclusive unmodified: Only this
cache has a copy of ihis line, and the
line is not modified with respect to
memory .01 _ Exclusive modified:
Only this cache has a copy of ihis line,
and the line is modified with respect to
memory.
The cache control circuitry updates
these valid bits on a cycle by cycle
basis as the cache lines arc being ac-
cessed, making the proper state transi-
tions, influenced by the global and
writethrough bits penaining to ihc data
being cached.
36
February '89
68 Micro Journal
M-Bus,
the user's interface to the
88000 family
The M-Bus is ihc user's pathway to the
88000 family devices and the 88000 fam-
ily 'spathway to externa) physical memory
(refer lo figure 7). The M-Bus is a 32 bit
wide synchronous bus that multiplexes
address and data on ihc same 32 bits and
operates at the same clock frequency as the
88200. It is designed to support multiple
users and has the ability to function as
cither a bus master or as a bus slave. Ihc
M-Bus includes many features which al-
low efficient operation in such environ-
ments as multiprocessor, multiuser and
fault tolerant systems. Prior to discussing
these features however, it would benefit
the reader to have an understanding of ihc
various signals that make up the M-Bus
and their functions. The following is a
brief description of the M-Bus signals:
AD0-AD31 (M-Bus Address/Data)
fonn the multiplexed address/data bus.
The function of these signals depends on
the M bus transaction phase (defined by
the M-Bus control signals). During the
request phase, the MC88200 drives the
physical address onto AD31 -ADO. During
the data phase, AD31-AD0 arc the data
input/output lines,
ADP0-ADP3 (M-Bus Address/Data
Parity) indicate the parity of the M-Bus
address/data lines. The MC88200 uses
even parity (parity can be disabled by
software), checking parity on reads and
generating parity for addresses and mem-
ory writes. Each parity signal is associated
with one byte of the address/data bus,
C0-C6 ( M-Bus Control), when the
MC88200 is the bus master, define the
transac lion phase and type of transaction.
Ihc CO signal defines whether the phase is
address (address on AD31-AD2) or data
(data on AD3 1-AD0). During the address
phase, CI-C5 indicate intent to modify.
read/write, M-Bus lock, cache inhibit,
and global address. During the data
phase, C1-C5 indicates cnd-of-rcqucst.
read/write, and selected bytes.
These signals aic inputs during M-Bus
snooping and when the MC88200 is ac-
cessed as a slave device.
CP (M-Bus Control Parity), when the
MC88200 is the M-Bus master, indicates
the even parity of the M-Bus control sig-
nals.
ST0ST3 (M-Bus Local Status) i n -
dicatc the local M-Bus status when the
MC88200 is being accessed as a slave
device (register access), or when the
MC88200 is snooping a global M-Bus
transaction. These signals arc inputs dur-
ing reset and arc used to initialize the
CMMU I D register.
SS0*-SS3* (M-Bus System Status),
are the reply generated by M-Bus slaves
in response to the MC88200 address and
data phases.
To othar >
M Bus masiars
Signals
*m
V V
MC782Q0
<XMJ
Arbitration
Logic
7* — VV A -TV
SYSTEM ARBITRATION
QOTTRCL
21
n
SYSTEM STATUS
7T
in
INFORMATION (*ddre$s/daia)
s
77
v v
Slave Controller
Ptriphanl
or
Memory
parity
parity
Figure 7 M-Bus Block Diagram
68 Micro Journal
February 89
37
BR (M-Bus Request) isasscrtcd by ihc
MC88200 to request M-Bus ownership.
BG (M-Bus Gram) is generated by
external M-Bus arbitration logic in re-
sponse to a bus request. The MC8820O
recognizes this signal only if the M-Bus is
not busy (BB* signal negated).
B A (M-Bus Acknowledge) is asserted
by the MC88200 when it has received a
busgrantinresponsetoabus request This
signal allows the MC88200 to accept and
maintain bus ownership while making
memoryaccesses. It isdrivenactive when
BB is negated.
BB* (M-Bus Busy) indicates that some
other M-Bus device is currently the bus
master, it qualifies the bus grant signal.
For an MC88200 to become the bus mas-
ter, it must receive a bus grant signal from
the arbitration logic, and BB* must be
negated (no other device is ihe M-Bus
master).
AB+ (M-Bus Arbitration Busy) indi-
cates that one or more M-bus devices arc
performing a bus request. It is an input to
the MC88200 that indicates contention for
bus ownership is talcing place.
MULTIPLE USER OPERATION
Now that the reader has a brief descrip-
tion of the M-Bus signals, it will make it a
little easier to follow the discussions con-
cerning ihe features provided to the user
by the M-Bus. The M-Bus opcraiion has
four distinct events that take place each
cycle; bus arbitration, address
selection .data movement and status re-
sponse. As mentioned earlier, the bus is a
multiplexed synchronous bus and all ac-
tions on ihe bus arc synchronized to ihe
rising edge of the clock (refer to figure 8).
In operations where only one word of in-
formation is transferred, it takes two clock
cycles to complete the transaction, but
nansferring information on the bus in
'block modc\ only takes n+ 1 clock cycles
to compleie(in the case of the CMMUs,
"block mode* transfers four words at a
lime). The CMMUs perform all cache
updates and copyback operations in the
block mode. Block mode is performed on
quad-word boundaries, i.e. the first word
transferred starts at address
hcx"XXXXXXX(T and ends at
hex"XXXXXXXC\ At the end of each
address and data transfer, including block
transfers, all M-Bus participants place
their status word onto the bus. This se-
quence of actions takes place on every
elk
MCE (M-Bus Checker Enable) d e -
termines the operational mode (master/
cheker) of the MC88200 M-Bus. In the
checker mode of operation, all M-Bus
signals arc placed in the high-impedance
state and all M-Bus outputs arc monitoicd
as inputs. The master operates noimally.
The checker compares its internal results a d d r
with the results read as inputs. If a mis-
match occurs, the checker asserts ERR.
ERR can be used to prevent the memoi-y
access fiom corrupting the code, data or i/
o system.
cycle lhat requires access of data. The fol-
lowing discussion will familiarize the
reader with the actions that take place
within each major operation on the bus.
BUS ACCESS
M-Bus transactions take place be-
tween one bus master and chic or more bus
slaves. Bus mastership is determined
through arbitration while slaves arc deter-
mined by address decode. The arbitration
signals offered on the M-Bus allow the
system designer the flexibility to imple-
ment variety of schemes as long as the
end result is only one bus master being en-
abled at a time. The five signals supplied
for bus arbitration (described earlier in the
signal descriptions) arc used to access the
M-Bus. These signals woik in coordina-
tion with each other to provide efficient
access and depaiture on the bus. Below (
refer to figure 9) is a simple timing dia-
gram of the interaction of these signals:
It is interesting to note thateven ihough
the M-Bus allows only one master on the
busata time, slave devicesare allowed the
opportunity at the end of each address or
data cycle to respond with status condi-
tions that could potentially cause the cur-
rent bus master to end its tenure and re-
arbitrate for the bus at a later time. This
/ Add rail Wread data W addxeis \/*nte data\
\ /\ A /\ /
/ coiwvand \/r*ad qual W cotimand \/«rite qual
C0-C6 \ A A A /
St0-St3 t crrel * tat W(**d stat W cnid stat Wwnte stat\
\ A A A /
SS0-SS3 / and scat \/r«ad stat \/ and itat \/wcit« stat
\ A A A /
Figure 8 M-Bus General Timing
38
February "69
68 Micro Journal
ability for slaves to impact the bus opera-
tion will be discussed a little later. As each
potential bus master requires access to the
bus ihey assert BR to the bus arbitration
devicc(implementcd externally). AB is
the norcd output of all BR on the M-Bus
(also implemented externally). The arbi-
tration device will then assert BG to the
next potential bus master based on its own
priority scheme. The device receiving the
BG will gain control of the bus as soon as
the BB signal is dcassencd. BB is dcas-
scrtcd when the current bus master re-
leases its B A. It is possible that during the
time gap between receiving BG and BB
being dcasscrtftd that the bus master elect
could lose access to the bus due to a higher
priority device being given BG and their
BG being removed or that a bus cycle
ended in a status of retry or error. 1 n either
case the master elect would have to re -ar-
bitrate for the bus. Once a device does
receive ownership to the bus ihey will
assert B A. The bus master may retain the
bus until other devices requiie access ei-
ther for new transactions or to recover
from exception conditions. Once the cur-
rent bus master loses the bus. there is an
option in the CMMU that will allow that
device to immediately reassert BR (Prior-
ity Request) if necessary or wait until AB
is dcasscrtcd (Fairness protocol) before
the BR is asserted.
ADDRESS GENERATION
AND DETECTION
The request (address) phase of a bus
access is indicated by control bit GO being
asset led . At the end of the request phase,
CO is deasscrtfd and the bus operation
enters the data phase. In the master mode
of operation, addresses are normally out-
put to select a slave device. In certain con-
ditions however, the address generated
may contain the control register addicss
and ID of one of its own internal registers.
This is called a PIRA (P-Bus Internal
Register Access). In this particular condi-
tion, the CMMU acts as both a master and
a slave. It acts as a bus master by arbitrat-
ing for the bus and generating the address;
and acts like a slave by decoding the ad-
dress. On each single word access, the ad-
dress is output and a reply is received to
either validate that address or to indicate
an exception condition. In block iransfer
elk
bb 1
ab 1
ba
br
bg
i i i i i i * i i i i i
i i ■ i » i * i i i i i_
Figure 9 Bus Arbitration Timing
mode the address is generated for the first
cycle but not for the last three cycles. It is
the responsibility of both the master and
the slave to update their respective add/ess
counters internally while performing
block transfers. The CMMU, while func-
tioning as a slave device, docs not use a
chip select in the normal sense, but has an
ID which is loaded into the CMMU at
power-up and can be loaded by software as
well. This ID is checked on each request
phase to determine if that access is in-
tended for that particular CMMU. The ID
has to accompany every address that is in-
tended to access aCMMU from the M-Bus
or the P-bus. The request phase is termi-
nated when the OK reply is received via
SS0-SS3.
READ AND WRITE ACCESS
Data transfers across the M-Bus arc
accomplished via reads or writes in either
a single or a block mode. In single word
transfers the data is preceded by an address
and followed by the appropriate status to
confirm the operation. If the user intends
on transferring less than one word of data,
a single word transfer is executed with the
appropriate byte strobes enabled. In block
mode, the data is transferred in burst of up
to four words. A request phase precedes
the first word transfer with an address that
is byte aligned. Each word transfer is fol-
lowed by a status condition that qualifies
that word. Block transfers arc teiminatcd
by the master asserting an End of Request
(control pin CI ) in thedataphascofthe last
word or by the slave asserting an End of
Data status for the last word it can handle
viaSS0-SS3.
STATUS REPLIES
One of the very unique features of the M-
Bus operation is the status reply phase. In
this phase, all operations are validated,
invalidated or redirected depending on
the response to that phase by each partici-
pating slave device. These status replies
are communicated on the bus via the sys-
tem status lines described earlier. The in-
formation conveyed by this status mecha-
nism is how the M-Bus is able to support
such features as multiprocessing. The
status lines are mutually exclusive with an
inherent priority defined through the use
of active low level inputs. The status reply
with the most active low inputs has high-
est priority.
Every request and data phase has a
corresponding status response presented
on the M-Bus at the end of that phase.
Since only one master is active at a time,
it is the responsibility of each active slave
to place the appropriate status on the bus
at the end of evejy phase (refer to figure
8). There are five possible responses that
can be placed on the bus by participating
slaves; I) Error 2) Retry 3) Wait 4) End of
data 5) OK.
The Error response is normally placed
on the bus by a slave device that has
detected a parity error, but system im-
plementation allows the developer of M-
Bus slaves to apply other eiror conditions
to this response. When an error is de-
tected, the bus master loses ownership of
the bus and has to return to the bus arbi na-
tion phase.
68 Micro Journal
February "89
39
The next status response, Retry, is the
normal mechanism used i n multiprocessor
systems to handle Bus
Snooping(Snooping is described in more
detail later). It is also possible for Retry 10
be used in certain applications as a priority
mechanism for higher priority devices to
gain access to the bus as soon as it is
required.
The Wail response is used to delay ihe
progress of either a request or data phase
for various systems reasons. It can be
applied by memories wilh slow access
limes or by memory controllers who are
capable of setiingup blocks of memory for
burst opeiations. CMMUs that are Snoop-
ing will asseit Wail states to do addiess
interrogation. As long as Wait slates are
asserted by any slave device, the current
cycle, whether it is a request or data phase,
is repealed on the bus.
End of data (EOD) is used by partici-
pating slave devices in the data phase to
terminate a burst transfer if the burst can-
not be successfully completed. It will also
be asserted by CMMUs if a burst is at-
tempted by another device and that burst is
not quad-word aligned. In ihe request
phase EOD is decoded as a proper OK
response. EOD also allows a slave to re-
spond with a single word when a CMMU
requests four words. The CMMU will ihen
request ihe next three words one at a lime.
OK is the normal response lo opeia-
tions that complete successfully, whether
they are single word transactions or burst
transactions.
BUS SNOOPING
Bus snooping is the unique feature
suppoitcd by the 88200s lo facilitate
multiprocessing through ihe use of shared
(global) memoiy. For those not familiar
with the tenn Bus Snooping, it is ihe abil-
ity of caching devices to monitor ihe
memoiy accesses of cuirent bus masters
and to intervene if the memory location the
master is reading or writing is shared
memory and has been modified by that
caching device, but not updated in mem*
oiy. When a slave device asseits Retry in
response to a memory access, the bus
master will immediately relinquish ihe
bus and wait one complete cycle before rc-
arbitrating for the bus. The one cycle of
dead lime is to allow the device who as-
serted Retry to gain control of Ihe bus and
update memory. In order for this snooping
function to occur, snooping has to be en-
abled in the CMMU and the memory loca-
tion being snooped has to be flagged as
global. Snooping CMMUs monitor only
those bus cycles that are accompanied by
the global bit (C5) being set Each request
phase is given an Ok reply by snooping
CMMUs. However, the daia phase of a
global transaction is given two Wait stales
to afford the snooping CMMUs time to
determine if there is a match (snoop hit) in
their cache tag. If no match is made, the
snoopingCMMUs will respond to thenext
data phase with an OK. If a maich is de-
tected and that location is dirty (contains
data that is different from that in memory),
the detecting snooper will asseit Retry on
thebusandthenBR.Thenextcyclewillbe
given lo the snooper who in turn will
update memory wilh the correct informa-
tion. If the snooped transaction is a CPU
read, the data is copied back to memory,
but retained in the cache of the snooping
CMMU with different status. If the
snooped transaction was a CPU write, the
data is copied back to memoiy and re-
moved from the cache of the snooping
CMMU. Snooping is absolutely essential
in multiprocessing systems that use the
"write back" policy for their respective
CMMUs.
FAULT TOLERANT SYSTEMS
There are several features supported on
the M-Bus lhai will benefit fault tolerant
systems designs. Features such as output
pin comparison, shadowing and parity
generation and detection help the sysiem
implementer to acheive a more reliable
sysiem at a lower cost.
Every output pin on the M-Bus has an
internal comparator that compares the
output value on the actual pin to the input
value to the oulput driver. Any mismatch
will drive the ERR pin active indicating a
bus fault.
Shadowing is implemented on the M-
B us by setting a specific input pi n (MCE)
on the CMMU. When MCE is set, all M-
Bus signals are placed in the high imped-
ance stale and all outputs arc moni tored as
inpuis. The shadowing CMMU monitors
all of the transactions from the master and
if any mismatch occurs, the ERR pin is
asserted.
Parity generation and detection is en-
abled by setting a control bit i n the Sysiem
Control Register of Ihe CMMU. When
enabled, even parity is checked for all
read daia phases as well as for the control
signals that accompany each cycle. Parity
is generated on all request phases and
write data phases along wilh paiity for ihe
outgoing control lines C0-G6. Any parity
errors detected on the M-Bus are reported
back to the processor via the System
Status Register.
The CMMU also has an internal fea-
ture that allows the user to test each line of
Ihe cache and to diable any cache lines
that lest faulty. This provides the user with
a mechanism that does not require the
storing of a fault map for thecache that has
to be icferenced on each access.
As can be seen by this brief look into
the features and operation of the 88200
and associated M-Bus* Motorola has
created a very powerful, yet straight for-
waid approach to handling the many
systems concerns that normally sunound
the design of performance oriented appli-
cations. For a more detailed understand-
ingofthe featuresand functions described
in this article, Motorola has available
Technical Summaries and User's Manu-
als for the 88100 and 88200 as well as
wording devices and all necessary soft-
ware such as compilers, assemblers and
functional simulators.
FOR THOSE WH
UN lit I) TO KNOW
68 MICRO
JOURNAL
TM
February '69
66 ftfero Journal
iw — •m
r Mac-Watch
ForTboe
Neediof to
SI
DQQGC C
333!
W 11
L
' '-
Tne Macintosh- Section
Reserved as
And ours.
OF MICE AND MACS • • •
Reviews of Stepping Out n and
Quickeys; Information on an up-
grade to ImageStudio
By James £. Law
1806 Rock Bliif Rd.
Htmon TN 37343
How Many Mice?
Its always inteiesting to check out the Macin-
tosh softwaie leviewed in other magazines, espe-
cially if it is for a product I have reviewed or which
I use. I sometimes llnd myself saying. "How can
they give 5 'mice* (out of a maximum possible of 5)
to that dog of a program!" On other occasions it's
"That guy is obviously prejudiced against the soft-
ware. He's picky!" The truth of the matter is that
the relationship between a user and his software is
a veiy personal thing and there is room for honest
differences of opinion.
Speaking of differences of opinion, why does
nearly eveiy program reviewed by some magazines
rate a 'superior* rating. Of the 24 programs listed
on a single page of ratings in a certain Macintosh
magazine. 22 were rated 4 mice or better and 6
programs were rated 5. Is the cunent batch of
Macintosh softwaie that good, or do we just have
low expectations? Surely it doesn't have anything
to do with advertising dollars? I'm glad to say that
the management of Micro 68 Journal has never
tried to iniluence the conclusion of my reviews,
even In the case of those few that were quite
negative.
A Review of Stepping Out n
The advertising hype for Stepping Out usually
says that it appeases ones desire for a large moni-
tor. If so, It would be well worth its modest price.
We all get tried of looking at the Macs little 9" moni-
tor. (I Just don't get so tired of it that I want to spend
$1500 for a large-screen monitor) The truth is that
Stepping Out's function is to allow you to easily
move around a document that is larger than the
screen. As the mouse is moved so that the cursor
approaches the edge of the screen, the screen
image scrolls smoothly to expose more of the docu-
ment. A secondajy function of Stepping Out is to
piovide for reduced Images of your document for
page previews and magnified views for detail work.
Both views are interactive, that is. you may per-
form work while the image is leduced or magnified.
The first version of Stepping Out was generally
accepted as being a masterful bit of coding, but
some users complained about Jerky scrolling and
slowed operations. The primaiy purpose of the
latest revision, Stepping Out (I, was to improve
performance in these areas. To a very laige extent,
this effort by Berkeley System Design. Inc., was
successful. Stepping Out II scrolls quickly and
smoothly. While there is still a noticeable reduc-
tion in screen refiesh time, it was not enough to be
objectionable.
Stepping Out II is an INIT. that is, it must be
loaded in the system folder and then, upon restart-
ing your Mac, it is ready to use. If you open the
control panel you can then turn Stepping Out on
and choose the desired parameters. You may
choose a variety of document sizes from full size
display (i.e., 8-l/2x 1 1 ) to blueprints (i.e., 3 f t x 2
ft). If none of the pre-entered sizes suit you. you
may set up a custom size. The control panel also
allows you to set parameters for reductions and
enlargements and to specify the amount of memory
66 Micro Journal
February 89
41
to be reserved upon start up for Stepping Out II.
Stepping Out II then constructs an "image" in
memoiy of the size page you specified. As the
cursor appioaches the edge of the monitor, the
^reconstructed* image is fed to the screen so as to
provide the perception of smoothly scrolling to
show more of your document.
I tried Stepping Out II with page layout pro-
grams (PageMaker, ReadySetGo), word proces-
sors (Mac Write, WordPerfect), desktop presenta-
tion programs (ReadySetShow, PowerPoint), and
graphics programs (SuperPaint, Canvas), and
veiy few incompatibilities were identified. The
only problem noted was that PowerPoint windows
refused to scroll properly under Stepping Out II.
Of course, programs with non expandable win-
dows like MacPaint and MacWrlte gain little from
the use of Stepping Out II (although you can
quickly scroll up and down the page in Mac Write).
mmmmmmm*
o
I Stepping Out II ZZ,
\ 1
Pyro^
Q
QuicK*ys T
3.2
n.
O
justable. This feature works well. The reduction
feature does not work so well. Only 25%, 50%, and
75% reductions are allowed. The resulting screens
are quite unattractive as the desktop background
turns black.
Stepping Out II works with any MacPlus, SE. or
Mac II. It is advertised to work with all standard and
laige Mac II monitors except for 24 bit color. It does
not work with many of the big screens used with the
MacPlus and SE. Stepping Out is designed to be
compatible with all software that works with laige
screen hardware.
Stepping Out II seems to work, as advertised,
with the few problems mentioned above. The ques-
tion is whether you need extra help in moving
around your documents. If scioll bars and built in
pusher hands' aren't good enough for you, perhaps
you need Stepping Out II.
Back to the business of assign-
* ing overall ratings. . . Five mice is a
lot of mice. I would give Stepping
Out II, 4 mice, a solid value; but with
room for improvement.
QOn 20
Choose your screen:
20" workstation monitor
blueprints (5 ft. x 2 ft.)
Copy of dual page layout
dual page layout
letter (wide margins)
o
New
[Open]
8.5 x 110 inches
Requires 1 29K
Always Reserve |QK | (|] (at startup)
Reductions :
Enlargements :
O O <D
25% 50% 75%
2x
Custom
©1988
berkeleu system design, inc
How Quick U guickeya?
Stepping Out Jl Control Panel
If you specify a very laige document size, it can
be frustrating to work in one corner while the
memo bars and tool boxes are at the other corner.
Stepping Out II allows you to lock memo bars and
tool boxes into place so lhat they are always
visible, no matter where you scroll in the docu-
ment. The feature does not appear to work with
Canvass hiearchical menus that pop out into the
area reserved for the document itself.
Stepping Out II makes it easy to magnify por-
tions of the scjeen up to 16 times its normal size
for close up work. The size of the area to be
magnified and the degree of magnification is ad-
Now I don't want to give up my
mouse, but sometimes it's a pain.
In the middle of a series of keyboard
actions. I have to stop, use the
mouse, the return to the keyboanl.
In the Macintosh Plus manual,
theie is a pictuie of a Mac user
sitting way back in his chair away
from the screen with keyboard in
his lap and feet on the desk. We all
know that in the real world, this
pose wouldn't last for over a few
minutes before he would have to re
position himself to operate the
mouse. Wouldn't it be nice if some
of those mouse operations could be
handled from the keyboard?
Well, they can with Quickeys
from CE Softwaie. Mouse actions such as choosing
menu items, clicking dialog boxes and scrolling the
screen can be assigned to a key or combination of
keys on the keyboard. A single keyboanl stroke can
also be programmed to perform other aclions such
as enteiing a passage of text.
Quickeys, is an INIT and is activated by placing
it in your system folder and restarting your Mac.
You then, at any time, have access to the Quickeys
control box by typing OPTION-CONTROL-RE-
TURN. The combination of keys, like all other
Quickey pieestablished by key combinations, may
be easily changed to suit the individual user.
42
February *89
68 Micro Journal
©
Quickey s T
Cut
[ Copy ]
[ Paste
Clear
Quickey entries are made by selecting one of 1 1
options under the "Define" menu. A very brief
overview of the possibilities are as follows:
L TEXT — Assign a string of text to be
displayed when a key is typed.
2. FILE — Close the currently open file and
open another application or document without
going through Finder.
3. MENU/DA — Open any DA or make any
menu selection with a key stroke.
4. ALIAS — The typing of a
specific key will cause a different
character to be displayed. Use this
feature to reorganize your key-
board.
5. CLICKS — Use a keyboard
command to replace any mouse
click and dragging operation.
6. SEQUENCES — String up
to 30 Qulckeys entries together into
a powerful macro.
7. Buttons-Use a keyboard
command to click any button.
8. MOUSIES — Use key-
board commands for specific ac-
tions such as zoom or close win-
dow, page up or down, or line up or
down.
9. SPECIALS ~ Use key-
board commands for miscellaneous
actions such as shut down, re-
start, or select rear window.
10. DATE /TIME — The des-
ignated key combination makes
the current date and /or time appear
in one of a number of formats.
I 1. F KEYS ~ Select an FKEY with the
designated key command.
Each Quickey key stroke can be assigned to a
"universal set" (it is always available for all applica-
tions) or may be assigned to a specific application.
In cases of conflicts, the key strokes In the program
specific sets take precedence over those in the
universal set.
Tb Illustrate the usefulness of Qulckeys, let me
tell you how I have made use of it to speed up my
preparation of viewgraphs with PowerPoint. First,
I press OPTION-CLEAR to go directly to PowerPoint
without going thiough the Finder. OPTION and "♦"
or "•" lets me flip through my slides from the
keyboard. With OPTION-Z. I zoom back to review
the entire slide or with OPTION -A 1 can expand the
slide to full size. OPTION + (arrow key) allows me
to quickly page up or down, right or left. OPTION-
COMMAND - (arrow key) lets me move more pre-
cisely a line at a time. Finally, when I press
OPTION-RETURN, my Mac immediately shuts
down [after giving me a chance to save) without
going through the Finder.
Since I assign the key strokes. I can select
something that makes sense to me. It's easier to
lemember that way. But if I forget. I can enter
OPTION -COMMAND -SPACE BAR and a list of all
my Quickey entiies are displayed.
Qulckeys is a handy pro-am Even with the
standard Macintosh keyboard, it is a real time
saver. Power users and expeiienced typists will
appreciate not having to take their hands off the
QuickPaner
Define
Yl.l
opt-R j^ Transfer
§6opt- spc^ Quick reference
96opt-. ^ Toggle QuicKeys on...
opt- del "^ Shu* down
opt- clr Romans Charts II
opt -17] Q Bible t
opt- (*) p| Close window
opt-l/] Q Zoom window
skirt-" ^ Double QuKkQuotes
® Uniuersal
O Finder
El Startup icon
QuiCKEYS"
© 1987 CE Software, Inc. AH Rights Reserved
Qulckeys Control Panel
keyboard to reach for the mouse, I would have to
rate II at least 4-1/2 mice if I were giving ratings
based on mice points.
Image Studio is Upgraded
Version 1 .0 of Image Studio software from Letrasel
USA, was named as product of the year by Personal
Publishing magazine and now an ever more power-
ful version (1.5) is available. Image Studio allows
you to produce high quality camera-ready half-
tones on the Macintosh and incorporate them into
desktop published documents. The principle im-
provements in version 1.5 are as follows.
1. Enhanced Grayscale Capability —
ImageStudio 1.0 could process up to 64 shades of
giey but with Version 1 .5, you can manipulate 256
shades. Obviously the number of shades in a file
depends on the capabilities of the scanner used.
But once you have the image in ImageStudio, you
can take advantage of all 256 shades to line tune
the image.
66 Micro Journal
February '89
If you have a Macintosh II with an 8-bit
video driver and a high resolution monitor, you
can view 102 shades on screen. With the
Macintosh Plus and SB, you can view 64 shades
plus white on screen.
Effects Graymap
Partial ImageStudio 1.5 Window
2. Memory Management — Version 1 .5
provides far more sophisticated memory manage-
ment techniques which make it possible to work
with images larger than your RAM would normally
allow. This is important because scanning with
256 shades and 300 dpi resolution creates very
large files, ImageStudio handles this feat by
creating a working copy of the image on dish. Vou
can then open a portion of an image at a time while
you edit.
3. Scanner Control — You can now drive
scanners and image grabbers without leaving
ImageStudio. The "File" menu now includes
"scanner setup"* to set options and a "scan" 4
command which activates the scanner or image
grabber. This arrangement allows you to scan
directly into RIFF format which has the same reso-
lution potential as TIFK but with smaller file sizes,
4, Upgrade of Tbols — Finally, a number of
Images tudio's tools and commands have been
enhanced. Fbr example, you can now scroll selec-
tions past the window boundaries and can con-
strain selections to squares or straight lines.
Version 1 .5 of ImageStudio greatly enhances an
already powerful program. Those of you who have
occasion to use scanned images should check it
out.
Please Feed Me Back Some feedback
I would like to hear from you on what you would
like to see in this department of 68 Micro Journal,
Would you rather see a number of shorter reviews
or a few more in depth reviews? Is there any
particular type of software you would like to read
about? Let me hear from you.
EOF
44
February B9
68 Micro Journal
Writing Position Independent
®and Reentrant Code
" OT ~°" ,MC ' for the MC68000 Family
350) Ed Bluestein Boulevard
PO Box 6000. Austin. Texas 78762
By Truman T. Van Sickle
Background
A multitasking sysiem is an
computer operating system
that will allow the seeming
concurrent execution of
severaldistinct tasks within a
single computer. The several
tasksmight be completely
independent, or mutually
dependent in thesense that
calculations or measurements
made by one task areneeded
as inputs to another. For
example in an industrialcon-
tiol system, one task could be
used to set several digitaland
analog outputs to control a
machine. A separate butcom-
municaijng task could
monitor sense switches and
analogsignals from the
machine. The computer
inputs indicate thestate of the
machine at any time and
dictate the next operation that
the machine must execute.
The machine slate might be
stored in an area of memory
that is accessible byeiiher
task. With these two tasks
mnning concurrently,
theprogrammer will have a
table with the current slate of
ihemachine. It is not needed
to scan the input status as
isdone with programmable
controllers or single tasking
machinesto determine the
current machine status. The
job of theprogrammer is
easier in this case with a
multitasking systemthan with
a single tasking system.
Some computers employ
memory management A
memory manager isa hard-
ware feature that examines
the logical address of
eachcomputer transaction and
determines the correct
physicaladdress for this
activity. When a program-
mer writes aprogram, it is
usually started at an address
zero. When thisprogram is
executed, this beginning
address must be changed] f for
no other reason than the
MC68000 family of
partsdedicate the first 1024
bytes of memory to an
exceptJonvector table. When
the computer has no memory
manager, it isrequired that the
programmer allocate memory
for the vaiiousmemory
resident tasks. In this case, it
might be necessaryto place
the code to be executed
anywheie in memoiy
wherethere is sufficient
unallocated memory to hold
the task.Code thai can
execute when placed any-
where in memory i sea I led
position independent
Rccncrant code is a feature
that will allow more than
onetask to appear to execute
a routine at the same time.
Theconccrn with reentrant
code is that the machine and
memorystatus associated with
the code be secure enough
that theroutine can be arbi-
trarily stopped at any point of
itsexecution and another task
can stait executing the same
codewith no interference
between the tasks calling the
routine.
Features like reentrancy and
position independence were
notreally considered neces-
sary for microprocessors until
theMotorola MC68000
family of paits became
available. The mainneed for
reentrancy comes about when
multitasking operatingsys-
tcms are used. Position
independence is desirable
fonnany programs in a
multitasking system, espe-
cially amultitasking system
with no hardware memory
management. Thepurposeof
this paper is to describe the
need for bothposition
independent and reentrant
code, and to demonstratehow
easily these important
features are implemented
with theMC68000 family
architecture.
Reentrant Code
Reentrant code means that
several different tasks can
call areentrant module,
seemingly at the same lime,
withoutinterfcrence. Suppose
that a multitasking system
isopcraung, and at the curient
instant, a specific routine
isbeing executed. Let us use
a program like a soft ware-
floating point multiply as an
example. Task A is in
theprocess of computing the
product of two numbers. At
anytime, a clock interrupt can
occur and removecontrol of
theprocessor from Task A to
the task dispatcher of the
operatingsystem. When such
an operation occurs, the task
dispatchercan, and usually
will, change the running task
from Task A toanother task
that is on the ready lisL Let
us assume lhatTask B is
placed in control of the
processor, This processin-
volves first saving the status
of the computer for Task
Aand then restoring the
previously saved status of the
machineat the last lime Task
B was in control. Task B is
nownwning.
68 Micro Journal
February "89
45
To make the problem more
interesting, let us suppose
that thcsoftware floating
point multiply is a globally
shareableroutine. Globally
shareable means that anytime
a softwaremulliply is needed,
the same routine will be used
byanytasL Only one copy
of the multiply routine will
be sioredin memoiy. Evety-
Ihing is okay until Task B
needs to executed software
multiply. At this time, a
routine must be enteredthat
was being executed by Task
A when Task B took control
ofthe processor. There can
be no special provisions at
iheexit of Task A control to
save the status of the rout-
inebeing executed, The
normal exit procedure at task
switch isto save the machine
status. Therefore, the status
of theexecuting reentrant
routine must be contained
completely with in the
machine status at all times.
For the most part, Ihe
machine status contains the
program status. The Data and
Address Registers aie all
saved as partof the machine
status as is the content of the
Condition CodeRegister and
the Program Counier. The
only missingcomponents of
the program status are Ihe
values contained indata
storage needed for the
execution of Ihe routine.
A simple way to avoid
storage problems is to store
all daiain the memory space
of Ihe calling program rather
than tohave specilied data
space in the executing
loutine. Thesedata are all
stored on the stack of the
calling program, andwhen the
stack pointer is saved as part
of the normal machinestatus,
all volatile data associated
wilh the execulingrouline is
automatically saved in
memoty associated with
thecaiiing program. When
Task B starts to execute Ihe
floatingpoint multiply, any
necessary volatile memory
will beassigned in the Task B
memoty space, and the data
saved whileTask A was being
executed will be safely saved
in the memoryspace of Task
A. This opeiation can be
repeated indefinitelyandthe
number of tasks that can
simultaneously access agiven
reentrant routine is unlimited.
Another application of
reentrant code is to imple-
men [recursion in a routine. A
function is said to be recur-
sivewhen it calls itself. If a
routine is reentrant, it makes
nodiffetence whether Ihe
routine calls itself or it
isreentered by another
program after a task switch.
In eilhercase Ihe handling of
local storage must allow the
routine lobe entered while it
is set up and executing a call
fromanoiher program. Any
recursive routine must be
reentrant.
Suppose that a multiuser
operating system is being
used by several programmers.
Much of the time that
programmers silat the
keyboard they are either
editing or compiling oras-
sembling a program. With a
well designed opeiating
systemand properly designed
system utilities such as
editors andcompileis, there is
no need for multiple copies
of iheseroutines to be resident
in memory. Assemblers,
edilors,compilers, and oiher
frequently used programs are
each madeicentrant. Ihe
progjam loader can examine
the task I ist whena new
program is loaded and make
use of a copy of the pro-
gramlhat already tesides in
memory. This approach can
piovide asignificant memory
savings on a large multiuser
system.
Writing Reentrant Code
Most programming is dooe in
high level languages.
Usuallythe language takes
care of providing reentrant
code. All Ccompileis and
most Pascal compilers can
provide rcentrantcode. These
compilers create reentrant
code so long as thcreare no
sialic variables associated
with the routines. Allvari-
ables should be dynamic.
Dynamic variables are stored
onthe stack which is passed
from the calling program.
Static variables must be stored
locally and associated
uniquely withlhe local
routine. Therefoie, static
variables will not besaved
automatically when the task
dispatcher passes control from
one task to another, and there
is no guarantee that asacond
task can enter the routine
without disturbing thestatus
of the first.
Siatic variables can be used if
they are not used fotexecu-
lion of the routine. For
example, a routine mightre-
quire initialization ihe first
time it is entered. Here,
astatic variable could be used
as a Hag to indicate that
(reinitialization has been
completed. This variable is
not apart of the computation
executed by the routine
whenever theit is called.
Generally, static variables
must be used withextreme
care with reentrant code.
Ihe discussion heie is aimed
at assembly language
programmingoniy. Most of
the time, high level languages
will sufficefor the eveiy day
programming. The times that
the high levellanguages fail
aie those when use of and
access to machinelevel
operations are necessary. For
example, I/O drivers,screen
access piograms, graphic
dtiveis, and global func-
bonssuch as floatingpoint
operations would probably be
writtenin assembly language.
Both reentrancy and position-
independence are required for
these types of routines.
Ihe MC68000 family pails
have architectural structures
andinstructions that make the
programming of leenlrant
codeparticularly easy. The
indirect addressing modes
allowsaddiessing of bytes,
words or long words — 8 bit,
16 bit, or32 bit quantities —
that are offset from a frame
pointer orfrom the stack
pointer.
A most convenient instruc-
tion is the LINK instruction.
Thefarmat of the link
instruction is
LINK An,#displacement
In response to the link
instruction, the MC68000
pushes thecontent of the
designated address register
onto ihe stack.Then the new
value in the stack pointer
after the pushoperation is
placed into ihe designated
address tegister .Finally, Ihe
value displacement is added
to the stackpointer. In the
MC68000 family, the stack
pointer is alwaysthe address
register A7. After execution
of the LINKoperaiion, there
is a designated amount of
memory on the usoslack that
can be used as stotage by the
currently executingroutine.
Boundaries of the storage are
marked by theconterus of the
stack pointer and the contents
of An.
46
February '89
68 Micro Journal
The diagrams in Figure 1
shows the impact of ihe
UNKinstniction. In this
case, the designated address
registeris A6, and the
displacement is -14, The
memory entries shownin
Figure 1 are 16 bit words.
Assume that the program has
UNLK An
This instruction causes the
contents of An to be placed
inihe stack pointer, and the
top of the stack ispullcd
in tothe register Art After
this opeiation is completed.
Before After
low address
\\\\ t A7
\ A6 . (A6>
A7 . return . - return .
high address
allregisters will be restored
and any dynamic memory
used bythis touiine will be
unaltered in the event thai
another laskmight use this
same zouline.
The register An used with ihe
LINK instruction is called
theframe pointer. Mnemonic
names may be assigned to the
memorylocations on the stack
by any of several means.
Probably iheeasiest technique
is to use the OFFSET
directive in anassembly
language program. An
Here the table is terminated
by entiy into a SECT ION
Ipor tion of the code. When
this table is assembled, the
valuefor ABLE will be
because the offset is 0.
BAKER andCHARUE will
be 4 and 8 respectively.
DOG will be assigned avalue
of 10. Reference to these
mnemonics relative to
thestack pointer will auto-
matically access the correct
memory location on the stack.
An example that accesses
iheselocabons is as follows:
Figure 1. Effect of
execution of the instinct ion
LINK A6,#-14
just entered a subroutine.
Therefore, the stack pointer
ispoinring at a location in
memory thai contains the
loug wordaddicss of the next
instruction in Ihe calling
program. Thislocation is
designated by return in the
figuie. After theLINK
instruction, the content of the
register A6 has beenpushed
onto the stack, and ihe new
value of the stack pointertias
been placed in the register
A6. Filially, thedisplacement
44 has been added lo the
content of A7 so thanhe final
memory configuration is as
shown in the figiae.
At the end of the subroutine
execution, the original
siaiusis restored by execution
of the instruction
thememoiy status is restored
to precisely that shown in
iheBefore portion of Figure
1.
After execution of the LINK
instruction shown in Figure
1 .there are 14 bytes of
memory allocated to the
routine. Thesel4 bytes will
remain attached to ihe routine
until an UNLKinstmction is
executed prior to return to the
callingprogram. Afler
execution of the UNLK, the
memory assigned tothe
routine is gone. Thus, ihe
name dynamic. The amount
ofsioiage assigned to each
routine is just the amount
needed toexecute the routine,
and the storage exists only
while theroutine is being
executed. Also, it should be
noted that in the event that ihe
routine is interrupted by the
taskdispatcher, all registers
will be saved prior to the
startirtgup of artfther task.
Therefore, when this routine
isrestartttl by the task
dispatcher at a later time ,
SUB LINK A6,#-14 Link the stack apace
MOVE.L D0,ABL£(A7> Place DO into AHIZ
MC7VE.W DO , CHARLIE (A7> Place the lower word of DO
in CHARLIE
Subtract DO contents
from those of Dl
And save the result in DOG
SUB.L DO r Dl
MC7VE.L Dl,DOG<A7)
etc.
UN1H A6
RTS
Unlink the stack apace
OFFSET directive allowsde-
finition of a table of offsets
created by Define Storagcdi-
rectives. Symbols thus
defined are kept internally by
theassembler. The offset
table may contain no executa-
bleinstructions. The offset
table is terminated by a
SECT ION orORG directive.
As an example, suppose thai
our routine needs three long
wordvariables, ABLE,
BAKER, and DOG, and an
integer CHARLIE. Thefol-
lowing OFFSEr table could
be used to create thesevari-
ables:
offset o
AB1£ DS.L 1
BAKER DS.L 1
CHARLIE DS.W 1
DOG DSL 1
SECTION 1
Here all memoiy operations
are relative to the stack
pointer.Figure 2 shows how
the memoiy is organized on
thestack.
Sometimes the slack is used
for other operations during
theexecutkm of the routine.
In such a case, the stack
pointennight be altered
during the execution of the
program, and theiefeiences
into the offset table would be
shifted. Here allof the
memoiy values would be lost
unless extreme care wereex-
ecutad in creating the code.
An alternative means
existsthat allows memoiy
references relative to the
FRAME POTNTERwhich
should lemain unaltered
during execution of therout-
ine. Note the following
minor change in the OFF-
SETtable.
68 Micro Journal
February 80
47
OFFSET -14
ABLE DS.L
BAKER DS.L
CHARLTE DS.W
OOG DS.L
SECTION J
Lower Addreaa
Inis symbol table staits with
an ofFset oM4 rather than
Oas was used earlier. Here.
ABLE will be assigned a
value of- 14, BAKER a value
oM0,CHAKL!EwiIlbc-6
and DOG willequal -4.
Recall that A6 is pointing to
the top of the framepointer.
Iherefore, offsets generated
by this table relativeto A6
will chose memory locations
for the various labelswithin
the stack area attached by the
link command. Ihelisting
below performs the same
functions as the examplepro-
gram above.
ABLE
BAKER
CHARLIE
DOG
FRAME POINT
RETURN
A7
A6
SUB
POSITION
INDEPENDENCE
Position independent code
can be placed anywhere in
memoryand will work with
no difficulties. Ihereare
severaiitasons to want
position independent code.
Most codeintended to be
placed in ROM should be
position independent
Therefore, the ROM begin-
UNK AM-14 ringaddoas need not be kept
MOVE.L D0.ABLE(A6) al as P cc,,ic memory location.
MOVE.W D0.CHARUE<A6) AnOther ' and P ro ^bly mows
SUB D0.D1 compelling reasoo, has to do
Figaro 2
^^^ O^IB ia » two byte or Z^ ,.
SUB D0.D1
MOVE.L Dl.OOO(A6)
Etc.
UNLK
RTS
A6
Ihe difference in this case is
that all labels are oflsetfrom
the frame pointer A6 rather
than the stack pointer A7.In
most cases, either appweh
works equally weU and
tffcehoice of which reference
technique depends only on
theprogrammers whim.
with memory assignment
onmultitasking systems
where there is no memory
manager. If asystem has no
memory manager, there are
two frequently usedap-
Pt>acr*d to the assigning of
memory space to a
progiam.The first requires
lhat the programmer link the
severalprograms lo be loaded
at unique address^ so that
none of theprograms can
overlap. This appro** really
makes theprogrammer into a
makeshift memory manager
When it isiequired to load
lhis code, the loader must not
allow theroemory space of
this fvogram to overlap the
memory space ofaiiy ocher
running program. A some-
what better *PDm*hrequires
that all code be position inde-
pendent. When aposition
independent module is
loaded, the loader must
merely/ind free memory
space large enough to contain
the programand load it there.
Once the fvogram is started,
it willoperate exactly the
same as if it had been
assigned to adesignated
memory space. Since the
system is multitasking.ihere
will be several modules
loaded into the memory space
ata time, and the operating
system has the responsibility
ofmaking certain that there is
no memory interference
betweenthe modules.
Otherwise this job is faced at
link time by aprogramer who
might not even know what
modules will be loaefcdinto
the computer at any given
time.
Writing Position
Independent Code
A provision in many assem-
blers allows giouping blocks
of codeor data into sections.
Motorola assemblers for the
MC6g000fainilyofpans
provide for sixteen sections
for each module.Section
wganUations fl Now the
fxvgrwxner to specify
5peciaJcharBcc0isjcs that
need to be grouped when the
program kJ inked into a
forking module. For
example, dynamic ramstor-
age could be placed on one
section and high speed
strain in another. Utility
Programs su*ed in ROM
could be in ascction, and
applications programs could
be linked into yetanother
section.
When a program is as-
sembled, a symbol table is
created thatcontains the
relative address of every label
used in theprogiam. Ihese
addresses are relative to
Section stans withthe
MC68000 family assemblers.
If there are several sec-
tionswithin a given program,
each section start address is
set tozero. Iherefoie, the
symbol table must contain
both therelative section
*Mras of each label as well
as the sectionin which it is
contained. Code generated
by an assembler isof the
relocatable object format.
A/ *Hhcr Parameter kept by
the assembler is the current-
location counter, lhis value
can be accessed by th^> ro .
grammerby use of an
asterisk in the operand field.
Forexample, a command to
load the cunent location
would be
LEA *,A0
48
Pebruafy S9
IWs instruction will cause
the current value of the
locatioocoumcr to be loaded
into the address register AO,
One or more relocatable
object modules are combined
into asingle loadable object
module by the linker. Ihe
Itnkerpullsallofthelike
sections together and assigns
toem lomcrnory locations.
After linking, the program
insmiciicMdfr^ss^ c^jj^
called location counter
values, will becalled program
counter values. When a
progiam is loaded intomem-
ory and the program counter
68 Micro Jotim*
is given the value of thefirst
instiuction in the program,
the program begins toex-
ecute. The insiuction
pointed to by the program
counteris fetched into the
machine to be executed, and
the programcounter value for
the next instruction is
calculated befoiecompletion
of the first instiuction. This
sequence isrepeated progres-
sively until die program is
completed.
It is not necessary to place
the various sections of
aprogram in contiguous
memory. In fact, if the
sections areused as outlined
above to designate special
memory characteristics, it
would be impractical to
always expect the daiafrom
any program to occupy
contiguous menu* y. There-
fore, thelocation of data
stoiage in a computer may
not ever bepoisiton independ-
ent.
The above discussion might
lead us to believe that
iheprogram, after linking,
must be placed at some
designatedlocation in
memory and remain there.
Seemingly, dataaddresses
must be fixed in some way so
that they can befound when
different portions of the
executing progiamiequire
them. There is a way around
the problem.
MC68000instructions can use
the difference of the data
address andthe program
counter to locate a data
address. Such anaddressing
mode is called Program
Counter Relative, PCR. Ifall
data accesses and branches
— including branches
tosubroutines — are PCR,
there is no need for abso-
luteaddresses anywhere in the
program. If no absolute
addre&sesare needed, then the
progi am can be executed
anywhere inmemory, and it is
indeed position independent.
To create position independ-
ent code, the programmer
must makeall data accesses
and changes in program flow,
JMP, JSR, BRA.Bcc, and
BSR program counter
relative. Any bianch instiuc-
tion is automatically PCR.
The only concern with a
change inpnogram flow is to
make certain that the branch
instructioncan reach the
destination. This concern
will be discussed atgreater
length later.
For data accesses, the PCR
mode can be used. Function
codesof the MC68000 pans
contain hardware signals of a
dataaccess or a program
access. Any storage opera-
tion that isPCR implies that
the operation is both program
and data auhe same time. A
PCR operation causes access
of the programcounter which
will asseit Program Function
Code line. Thefactthat
anything is being stored in
memory will cause theData
Function Code line to be
asamsd. These two linescan-
not be asseited at the same
time. Therefore, this type
ofopeiation is not allowed in
any of the MC68000 family
ofpaits. Ihe addressing
category that designates an
effectiveaddress in which the
data can be stored is called
Data Alterable, Data Alter-
able destination effective
addressesfor a PCR opeiation
are specifically not allowed.
Suddenly,the problem
becomes a little moie
complicated.
Most aiithmetic and logic
instructions are of the foim
OPCODE <ea,Dn
or
OPCODE Dn,<e*
where <ea is the effective
address, and Dn is a datareg-
ister. The left most operand
is the source operand, andthe
right is the destination
operand. Ihe effective
addressadmits a total of
twelve different addressing
modes. As wehave already
seen, not all instructions will
pet mil all ofthe different
addressing modes as either
source ordestination oper-
ands. If the assembler option
OPT PCS
is included at Ihe beginning
of a section, all code assem-
bledin that section will
automatically be assembled
as PCR typeoperations.
Therefore, the code
ADD ABLEJX)
will be assembled as
ADD ABLE(PC)JX)
However, the code
ADD D0,ABLE
will be assembled exactly as
written because the PCR
modecannot be used for Data
Alterable operands. Asa
result, itis the responsibility
of the programmer to replace
this codewith a sequence like
LEA
ADD
ABLE,A0
D0,(A0)
to achieve a position inde-
pendent equivalent to the
abovestatement Ihe Load
Effective Address, LEA,
admits all PCrelative opera-
tions. Therefore, this
sequence will providefor a
Data Alterable operation that
is PC relative.
In the opeiand desciiption
label(PC)
the item label is called a
displacement. The effec-
tiveaddress is calculated as
thesumofthecuirent
ProgramCounter Value and
the sign extended sixteen bit
value label. All pans ofthe
MC68000 family have a 16
bit limitation tothe size of the
displacement in this case,
For the MC68000and the
MC68010 paits, this limita-
tion exists for the branchin-
suuetions as well as the
displacements. If it be-
cocnesnecessary to extend
operation beyond the plus or
minus 32kbyte range dictated
by this limitation, other
approaches canbe used.
Another PC relative address-
ing operation is the indexed
mode.This address mode is
described as follows
label(PC,In)
where In is any register. In
this case, the address iscalcu-
lated as the sum of the
cunent Piogram Counter
value.the sign extended value
in the register In and the
signextended value ofthe
eight bit label. Ihe displace-
ment inthis case is only 8 bits
which yields a plus or minus
128byte tange.
It is best to assume that the
PCS option will generatesa-
tisfactory position independ-
ent code when writing
assemblylanguage code. Ihe
assembler cannot know of all
violationsof the 32k byte
reach of a displacement. This
€8 Micro Journal
February '89
49
knowledgebccomes evident
at link time when link error
messages willinform of any
such violation. If such an
error messageoccurs dining
the linking operation, a
different approach isneeded
to create position independ-
ent code for the bianchesor
instructions involved.
Position independent jumps
can be created. Suppose we
wish ajump operation that
will move Ihe program
control to one ofseveial
entries in a table based on a
calculated value.Further.
suppose that the range to
these entries exceed thestan-
dard plus or minus 32000
bytes that can be accessed by
abranch opemion. Any jump
operation will require
thedestination addiess,
Iherefbre, the code involved
mustealculate the aldress of
thedestination. Examine
thefollowuig code sequence.
Enter this code sequence with
the number of the procedure
wewish to execute stored in
ENT_NUMB. The table
above containsthe relative
addresses of the several
procedures that can becalled
by this sequence. The first
instruction puts thenumberof
the procedure into the data
register D3. Eachentiy in the
I able is four bytes long. The
left shiftoperaiion multiplies
the pointer value in D3 by 4
to point toihe correct location
into the table.
Any BSR instruction pushes
the value of the return
addrcssonto the stack and
transfers control of the
program to thesubroutine
address. In this case, we
have placed thesubroutine as
the next instruction following
ihe BSR call.After the BSR
ins&uction is executed, ihe
address of thelabel HERE
will be on top of the stack.
The MOVE instiuctionat
HERE removes this addiess
from ihe stack and places it
in A3. Regardless of the
location of this code se-
quence inmemory, the
acklress of HERE will be in
A3 at this point. Adding the
offset TABl£-HERE to the
address will leave theaddress
of TABLE in the address
register A3.
The add ADD.L (A3,D3),A3
causes the value stored in the
Nthtable entry to be added to
the address of TABLE. The
resultsof this calculation is
the address of PROCN. The
JSRinstruction then moves
conirol to PROCN.
This fixed code sequence can
be moved anywheic in
memory andit will execute
conectly. Note that the table
entries willbe calculated at
link time if the various
procedures are indifferent
modules. Also, it is not even
necessary for thetable and ihe
MCVE.L
EWT_NUMB,D3
ASL.L
D3,2
BSR
HERE
HERE
MCVE.L
(A7>+,A3
ADD.L
|TABLE-HEflE,A3
ADD.L
(A3,D3),A3
•
JSR
(A4)
*
TAHIZ
DC.L
PROC0-TABLE
DC.L
PROC1-TABLE
DC.L
PROC2-TAHLE
Program nucttoer ia in D3
Multiply pointer by 4
Subroutine call puta
addreaa of here in A3
Get addreaa of TABLE
Calculate the new PROCN
Go to it
Subroutine returna here
The relative addreaaea
of the aeveral proc-
durea that can be
called. Theae valuea
are calculated by the
linker.
FOR THOSE WH
68 MICRO
JOURNAL
TM
60
February *89
68 Micro Journal
Bit-Bucket
®
MOTOROLA #A*C.
Zachsry Nelson
Cunmniham Corr*7ainjc»0on. tnc
(408)912.0400
DeanModry
Motoroi*
(512)440-28*9
BUlfi
HcwlettPadnnJ Gxramny
<408) 447.0806
HEWLETT-PACKARD DELIVERS LOW-COST 68030 WORKSTATION
MOJO Often Broad Rante of Perfofmance
AUSTIN. Tex**. Dec. 5, 1 8 — Hewlett- Packard Company announced thai it will
use the Motorola 68030 (030) j najujauna mm m a ne w tow -cob c ngu ieenjig worfamnoo
The HP 9000 Model 340. thai also bavjoiB Motorola's 6*3*2 (WD math c«pn«*toOT,
u priced m S5.495.
rWfct* Packard has more dun 250.000 Mocsrota-hased tyianm iasaikd
w is ldw i d c . £«Hirrthu)«ar, Hew k^Pwi^ added trad- rw
based on the 03GYTO2 <rerftiiuam*i to ia 9000 WarksnooB Fssmty. the HP MakJ 360 aod
KP Model 570 The Model 360 provides tip to 3 MIP5 (milaop uug u smom per mxcod) of
pmzxska powtf end the Model 3*70 provide* up to * MIPS The oew HP Model 340
ua i a eii ian s these products by ofTenna up to 4 MIPS of perform*/** priced at TJOJOTO to
5 J S/M) less lhan the 360 and 3m
Momsola's 68000 mkn^vmosv Uk cumanJy has four rormtsTi — ibe 68000,
68010. 68020 ftnd6803€L The dr^eipprjmmt of rhe 68040 rjonnnue* ibe evciuoon of ibe
processor family, tn total. 19 vmllkm chip* from ibe 68000 family have been sold at
tppttctafts including tupuuxiaMieri. high-end wtmiiRs. business cdv^*cj\ and
emboidnJ control devices. New fenerations of the 68000 arc fully awrspanNc with earlier
SaUVbascd products; software wntlen for one chip runs with no modification on tbe
otheo. and hardware upgrades are very simple
HcwIea.Packifd is an Inlemarwrva) manufacturer of rrcaui/envnt and computation
products and systems rcsofntoed for quality and support The company's products and
tervkei are used in industry, bus) nesa, enpneennf, sciense. medicine and education in
more than 70 countries. Founded ut 1939. (he company cekbnues its 50th anniversary m
1989. Jt has 87.000 employees and had revenue of WJ billion m its 1988 fiscal year
Motorola's S2.2 billion Semiamd actor Products Serum (Phoenix, Artr). which
include* ibe M myum uT Pmlucm Group (Ausoa. Texas), u a part of MoxsoU Inc It
H (he l*rjr*i and broaden supplier of %
ponfouo of over 30.000 devices.
I B^TpllIAL COMTACT
Oen Mogore. motorola
512/441-6022
Or. Kan Phillip*
602/952-3*37
i in North Anxrva with a balaored
MOTTWOt.4 WC.
|OT7) t»j air
a chip orr THS Vt« BLOCK
MSSA, Ariz., Oec. 2 — In the world of ooelconductor
eenufscturlng. Motorola's now MOS 6 high dsnslty CMOS wsfsr
fabrication fsoiiity at Mssa, Arli. 1* th* Industry** l*t*«t
crown )*w*l. on* who** product* will h*Lp u«h*r in « n*w
•r*.
By: All of us
'Cmtri&uu piking - *E*ptct Sfytfting \ DMW *86
■"Thi* world cla** facility 1* Motorola** first U.S.
aanufacturing *it* to u** *om* of th* Toshiba proc***
technology for aanufacturing th* l*t**t architecture* on
aix-lnch w*f*r*. * said Marc v*nd*nb*rg, MOS 6 operations
sansgsr.
V*nd*nbarg said th* ?B.000-aquere-foot. Class 10
factory is dedicated to fabricating ons-asgablt dynaslc
random accsss ssatorlaa (DRAMa) and othar meaory circuits, a*
wsll ss ons of th* »«»i conduct or lnduetry'e hottaat
product*. *ppllcatlon-epeclf ic lnt*gr*t*d circuit* (ASICs) .
Ths rslstionship with Toshiba, a Motorola technology
partner end currently th* world loader emong one-aagebit
ORAM producer*, slso positions Motorola to uos MOS 6 for
futurs doe** tic manufacture of four-megeblt ORAM*, vtiich are
expected to became the dominant amaory chip by the early
1990s.
A one-megabit ORAM ia capable of atoring 1.048.576 bite
of Information, the equivalent of 66 douhle-apaced typad
psgss, on a alogla integrated circuit. The davicaa are uaad
oxtonaively in virtually all famillee of computere and
compute r-beeed eystsms, including computar-sidsd design,
engineering, and manufacturing ; communlcstlons/ robotics;
and consumsr products.
ASICs, ths sscond product type to be fabricated et the
new Meaa facility, are faat becoming th* semiconductor
eguivelent to the custom it ad sutomobils. Omaignere aelect
from a eet of atendard con figuret lone, then add their own
faaturaa depending on specific needs*
The reeult ia reduced deaign and production coat* end
guicksr turnaround, with complation of seas types of eemi-
cuetom circuits in ss Little ss two to thrss weeks.
Analysts estimate that ASICs, ons of ths famtast*
growing segments of the semiconductor bus Ins ss, socou/ited
for approximatsly 20 psrcsnt of ths totol market for
lntsgrsted circuits lest yeer.
Motorola managsrs ssld ths sdvsnced procsssss snd quick
cycls cspsbilitiss of MOS 6 srs idssl for mssting rspidly
chsnging rsquirsmsnts of high performance cuetomer
applications, especially in computere end communications.
66 Mcro Journal
February 89
51
Tha facility ia • k«y alwant in Motorola'* plan* for
th« cowpany'a nav High oanaity CMOS (HDC) Sariaa, a line of
ASIC product*, Capabla of procaaaing •ub~aicron HDC part*
as thay avolva 1a tha futura, KOS 6 providaa an iamadiata
capability to aanufactura tha lataat 1.0 aicron HDC gats
array a.
Motorola 1 * nav ASIC oircuita rapraaant • significant
advanc*m*nt in microchip technology. Built with a tripla
layer aatal (TRIM) atas procaaa, thay giva aaai-cuatoa chip
daaignara afficiant routing arid povar diatribution on a
channeleaa architaetura vith minimal dia aixaa.
Tha raault, according to Motorola aanagera, ia a 75
parcant gata utilization rata vith vaty high parformanca
(aubnanoeacond loaded gataa) and unpracadantad input/ output
flexibility and danaity.
*NOS 6 will provide advanced Manufacturing technology
adainietered by highly eXilled people to eupport euperior
cuetoaer eervice. end product guality, both in aeaory
producta and the rapidly expanding ASIC aarket," vandanbarg
•aid.
Ooopen
CONTACTS
James Strohecker
Cunningham Communication, Inc.
(408)982 0400
Bob Anundson
88open Consortium, Ltd.
(503)682-5703
WJopen Consortium Holds Member Meeting
Completes Binary Compatibility Standard
Two New 88000- based Systems Displayed Ai The Meetings
W1LSONVIU.E, One — December 12. 1988 — The 88open Consortium. Ltd today
announced the results of hi mem bets meeting held lisi week, where 128 representatives from
more chin 50 companves rallied to suppon the Consortium's standards development and "Team
Conaiuing*' ctmccpt At the meeting, two hardware vendor displayed yet lo beannoenced
compiler systems based on Motorola's 88000 RISC o&cTopTorcssor.
Dunng tKc two day meeting, held in San Diego. Calif, (he 8 8 open Binary Compaiibiliiy
Standard (BCS) committee niet and approval ilic final BCS than allows 88000 RISC based
application software to operate avuparer» u , y across numerous systems, similar to PC "shrink
wrapped" software.
More than 20 imc/nsoona! rcrjTscJHatives fiorxj European companies met separately at the
meeting to review evencas standard* developotent. product announcements and die appointment
of in 88opcfl European director. Many of the inicmaiionaJ representatives indicated Out their
companies would announce 88000-bajcd hardware and software developments in early to mid
1989
The meeting provided new and existing Kflopen members with the opportunity to meet ond
review progress of soft ware application, hardware and uandanls development The members
discussed update* oo opaabng system based groups *uch a* ihc Open Software Foundation
(OSF) and Unn International (formerly the Archer Group), upacming prod uci announcements
and individual and coliective publicity efforts.
Ouck Corky, manager of Motorola's 88000 Microprocessor Development, pi est need a
technical and architecture update, including ihc genera) uncling schedule and the announcement
of improved clock tcuds with upcoming versions of the 88000 architecture.
"It was unpressivc lo see that in just six months we evolved fiom a group of 30 vendors
who were itinerant lo lei each other know which company ihey represented, lo a coctesive
representation of more thin 125 people who were working together lo dcvehJp standard* and
bring aboui the success of the 88000 architecture." said Bob Anundson.caecuHvc director of the
88open Consortium. "Wt believe thai this form of Team Computing is what other RISC
vendors most ultimately turn to for true uaxru across the RISC architecture and hardware and
software.*'
7 he B iaary Compatibility Standard ia a corner**** for making the Team Computing
environment possible, 8&open*s concept of Team Computing enables all application software
ihn complies with me BCS (o run on any of the 88000-based hardware systems. User benelits
include a highly competitive envi lonment wtih a vast array of cost-effective solution*.
The BCS has been under development by a commiiwe of 88open mrxnlro since the
introduction o f the Mctctota 88000 RISC architecture in Apnl and Is the tint RISC sttndanJ to
be made •vailable in the industry. The &8open BCS is bawd on AT&T'i (Jn» Sysiem V He)
3.0 and combines X/Opeo and IEEE ttandsrtls. Interested parties may obtain the BCS from
88open.
A number of new members including NCR were added to ihc 88open roster at ihe meeting
It was announced that Kictuud Hmcr of NCR was appointed a seat on the 880pm board of
directors, NCR has secretly been a Consortium member since die formal introduction of the
8Bopcn in April 1988.
The 88open Goasxvbom, Ltd. is a not-for-profit organization famed 10 develop and
pmcnoie ihe success of Motorola's 88000 RISC aficjopracesaor architecture. The Consoniitnu
based in Wilsonville. Ore., includes more than 51 worldwide members. 88open » pioneering a
unique way of doing business built on the portability of 88000- based applications across a
variety of hardware platforms including fault tolerant systems, computer server* and
workstation. Information regarding the Consoroum can be obtained from the 8 8 open
Consoraum. Ltd. ai 8560 SW Salish Lane , Suae 500. Wilsonville. OR 97070: telephone 1503)
682-5703,
SANYOrtCON FIRST 88OPEN MEMBER TO
DISCLOSE 88000-BASED MULTIUSER SYS TOM
WILSONVILLE. Ore — Otctmbc' 12. 1988 — TV K8open Consortium. Ltd loday
announced thai Sanyo/Icon International (Orem Utah), an American subsidiary of the Sanyo
Electnc Ca (Osaka. Japan), is the lira 88opcn member 10 introduce a Motorola 88000 RISC
ptivc&strf-based system. The sysiem, called Icon 8000. is a multiuser business system which
fuppotis u p to 2 56 users, delivers 1 5 MIPS (aulboos instructions per iretmd) of performance
and is ihe first 1 a number of products horn a variety of vendors to comply wtth the 88000
Binary CoropadbiUty Standard (BCS). The BCS allows 88000 RISC-based applicauon
software to oansparently operate across numerous cysieov*. aimilar to PC "shrink wrapped"
software.
Sanyo/Icon Is one of more than 45 member compares of the 8Kopcrt The cc*n>any
joinad the 8 80 pen Consortium in June of 1988. The 88000 architecture, which includes many
features of die so-called "luperminioanputer" market. t$ currently being evaluated by moor
than 200 manufacturers worldwide,
' The Sanyo/Icon aancav«siR3H demonstrates the Arst tiopierocntarioA under a new
computing environ men 1 we call Team Cbmpubng,"' said Bob Anundson. executive director
of the 88open Consottium. Team Conaiuting is where all application software will iun on
any of the 88000-bascd hardware systems. The benefits 10 ihe user are a highly competitive
envuxKvrxM with a vast array of cost- effective solulions. ,,
The BCS is a cumersjone for making the Team Conaiutng envirofuTzni possible. That
standard has been under dcvcfopmeni by a Kznmitirc of 88open members since the
introduction of the 88000 chip set in April* and was the first 10 be made available in the
industry. The 8Bopen BCS Is based on AT&T's UNIX System V Rcl yo and combines
X/Opcn and IEEE standards, Interested parties may obtain the BCS from 88open
1 he 88open Consorrjum. Ltd, isa not for-profit organization formed to develop and
promote the s ucccsa of Motorola's 88000 RISC mcroprorcsxY architecture. The
Consortium, based in WUsooville, Ore., includes more inan 45 worldwide members. 88open
is pioneering a unique way of doing business built on the pot lability 68000-bsjcd applications
across a vat tety of hardware platforms including fault loleratant nystems> computers servers
and workstaano. Information ttgardiog the Consortium can be obtained from the 88opcn
Consortium. Ltd. at 8560 SW Salish Lane. Suite 500. Wilsonville. OR 97070: telephone
(503) 6825703.
52
February 89
68 Micro Journal
EKF-ELEKTRONIK-MESSTECHNIK GMBH
$yv»mf\*u9 f«r Uatxx»r>pvter ^a irtfuarte-eajtefroyi*
EKF-ELEKTRONIK-MESSTECHNIK GMBH
SysBrmam tur WowmuMw und bebsttrie-Eie^Vonik
poo Willi***
61 Micro Journal
Computer Publiahlng Center
5900 Caaaandra Smith Road
» la, tM7O0*evwr> i
A (0*341)12430
talks azee?i «m o
T«fc*t*C<0»Bt|iy>«7
gtU-ntt f*l^b? n tor YrHf**m/**ll} ' «M9-H
Two ladapeadeat aectlaaa of i-w«y data coaaualcatloa pata aelectora (or
••rial Interfacee according It* M23J Oca ceatelAaO in int 445J0-4X
avltchbox froa EXP, thua allowing coupling of aavaral paripharai davlcaa
to aura than ona coaiputar ayataa* Intagrated no 11- nodosa ara providad to
aJapllfy changing of DTK to DCS and vice varaa, ao that conoactiona froa
cans?ut*r Co coaputar or tarnlnal to terminal require no aora ap*cial
c*blia<? hardware.
Keuied in a itnl ahtat box for alactrical and aegnatlcal acraanln?*
10 oa-24 faaala connactora ara routed on tha pln'a fx-Data, JU-Deta, CTS
und 0T* (Ko. 1, 2, 5, i, 1, 20). Praia (Pin 1) ia available via 4HA
grov tiding aockac.
Don Pilllut*
64 Micro Journal
Coaputar Publlahiog Center
5900 Caaaaodra Balth toad
• la. D 4700 H
Tatofai (0238th 24*>v3
7*** 624431 aMd
7**Ui<023Blt IM67
m #i*rtiT*9*rt f ■iiati «9» tfrtfti t? w*9 rev ■ yi. «■«#-<■>> 19
*ith diaedaiona of only 34x7 6*mj tha IXP adapterboard VKS 68061- ADP50
allowa upgrading of any aviating 64020 nlcrocoroputar ay at a* to tha aora
advancad 68030 chip. Tha only thing tha uaer haa to do ia to reaova tha
60020 CPU and to inaart tha adapter; carrying tha 60030 nicroprocaaaor.
T«e pc-boerd ia ■ I- layer coaetructioa aith povar and grovodpiaaa la
coabloetlaa aith additional decoupling capacltora for effectiva oolaa
raductlon to loaura abaolotaly rallabla operation. Kxlatlng 68020
aoftware ruaa oo tha 66030 alcroproceeeor without aoy changaa, anch that
upgradad coaputara can ba bootad fron harddlak or dlafcette in tha aaae
Adnaor a a before. Tha VKK 68061-AOP30 adapt a r la aval labia fro* £RP
atoeh at a alagla quantity prlca of DM 220.- (Europe) or US$ 134.-
<USA).
r£2rssir::r .Blef — ■^■t«snna
ac
]SE
SO West Hoover Ave.
Mesa, Arizona €5210
Tal. (602) 962-SSS9
Fax. (602) 962-5750
GKSPAC XaaOKS 1969 CATALOG
HK&K, az, sacaabar 9, 1988- -Gx3paC, Xnc baa ralaaaad
ita niv 1989 product catalog of board laval product!,
aoftware »od eyateae Tha 116 paga, all-color docuoant
la the largaat tba company baa avar producad md liata
ovac SOD up-to-dete product rafarancaa.
Tba G1SPAC catalog ia tba largaat in tba board laval
induetry and includee tba aoet divaraifiad variaty of
hardware and aoftwara coaponanti, Tba GkSpAC catalog
offara aa aucb, if not aora cboica, tban tba typical
bua buyar ' a guidaa of otbar arcbitacturaa . Tba GESPAC
catalog ia eeat fraa of cbarga to Qualified anginaara
Tba catalog ia dividad into aavaral atjos product
catagoriaa to balp guida tba anginaar'a oalaction. Tba
principal catagoriaa ara r Intal and Motorola baaad
Procniors. atatic and dynaalc Maaoriaa; aerial,
parallel and analog Zoterfacee; Controllara for dieka,
grepblco, data conwunicat ion, natvorking and aotor
control; vo«ioue accaaaoriaa aucb aa card eagea,
cablaa and backplanaa.
Reader Contact:
Editorial Contact:
Don Biilos
Cosmo PebouctslOts
A new product category liata a complete of faring of
linaar acan caaaraa and controllara
Tba catalog* a aoftwara aaction baa grown to include a
library of aoftwara drivara for aoat boarda offarad by
GISPAC, aoftwara development utilitiaa, in addition to
tba uaual reel-time oparating ayataaa and bigb laval
languagaa .
An iaportant aaction of tba catalog ia dadicatad to
ayataaa. Tbia aaction liata a larga faaily of pre-
oeoeabled and raady-to-uaa development ayataaa and OEM
coaputara baaad on tha boarda and aoftwara davalopad
by tba coapiny. Tbaaa ayataaa ara aitbar baaad on tba
OWlX-like OS- 9 raal-tiaa oparating ayataa or on tba
popular K9-O09 oparating ayataa.
Tba catalog alao liata Application Spacific Intagratad
Circuita davalopad by GISPAC for interfacing to tba G-
64 bua. Tbaaa ASICa ara Bade available to all tbird
party board aaouf actvrara.
66 Micro Journal
Februa/y ^89
53
Product News
i Him ii
S*OftSl*Xt*rtfW FOHtTUSA Wiyw Fachrr|*uB> STO^MO
2959 S UAncNene. Bfet 0*b»4 CA 96008 FOflCJ Gmbtl tat* Nfcoch (0891 600 <HG
Mv*ny Snor* <«Qt) 37*74*1
First 68030-based VMEbus Message Passing CPU
For Distributed Real-Time
Multiprocessing at the High End
CPU-SO Seine ted For Ne*v Simulator Program. Displacing
MlnJcomputere e* Mainframe*
CAMPBELL, CA , December t$. 1988 — The highest known perfcemance 68(B[>base<i
VMEbus single boatd •ocn ret began shipping this (norrth tTJRCZ CTiKPUTOcS believes the
CPU 30 sets new marks m functtonaltry and processing throughput thai wtl expend tlte use
o( VMEbus product* bito new ma/krb 7>ic CPU-30 is Ihe lim tour meungr passing
stogie-board ownpulcr mailable for VMEbus eppttcafkXU lb Introduction begins an era of
off the siielf soJuOoru for appucarjaru previous ly served by more expensive miruevmputen
and mainframes
Ihe CPU 30 has ebeady been selected for us* In a motor Navy simulator prolan (tec
separate release) thai (treses these features
The CPU-30 enable* the design of very large teak hkgr> peWomxanee systems in which
the processing power b dbtrtbuied amung user* rather than concentrated In a arrxnuWd
compute*," wwJ Many Webberg, FORCE CDWrVTBB VWe President & Genera) Manager
*No other VMEbus solution offers the message exchange architecture netdtd for realtime
distributed muktprucesstog 7>ie result b much higher performance at lower cost." he added
Litany of Feature* Moke* CPU-30 More like Minicomputer Ttsan VME CPU
Ihe CPU 30 exceeds die funnfonaKty of any known VMEbus board to achieve lite status of
a true ryjnrrn~on-a<boa/d lb main features include
• 60030 mui^iia— ii, 20 or 2fMXs opsra&on
• 68882 rkerfer^ point adpTOsasaoj, 20 or 2SMNj
• High pjrfc^mant* 32bu DMA cowdodjt - Tugft epeed data mWen tocaDy and khm
I^V>Sh& 32 byte eitemei FtPO for bum DMA
• VME7PLU5~ «e*rbc*vy imptameraed in fORCX GATI AWtAV 2 {FGA 002), a 22,000-
pate ASJC (hat provides ma^t owing, mattsn rnxemflj* and <j co> nnrf< ww
VMEbui inlerf ace
a A Mbyte* system memory: shared dynem* RAM wtm byw panv a a r«**« e ? from ihc
VMEbus vte FGA 002
a Message broadens to up to 20 CPU* simulsnnewnk;
a SCSI Jrtetfate us»ng onboard DMA controta
a Floppy dfefc mivrfoc* (SA460 axnp*t*»*)
a Fowl mulBDrolorol %rrvji ports. ] ehannei to KS232 and 2 are RS2J2/TG4Z2TC4aS scm-
a 8-ott perantl e**ffat# wilh handshake
a Up to 4 Mbytes of EPROM w>lh aupporl tor 28 and 32 (Mn eewa. 32 bit data patn
a Syflem FPROM for boa) boot and «nt*rt inUakMfrn of th* K) miHac^ and FGAOQ2
a RaaVbrre c>*XtaV>«(iflf w«n battery baeVwp
a 32 Hbyie* of fool n«h 'spwd SHAM w«h baiwiv back up
a Opoone) 10 HbVkavmd CU«n«t coMrolrr
a 2 24-bkt and 1 8-Wl omen
a Fuil 32 -bit VMEbui ma*#xMeve irearface. avfito-bvsl arbiter. SY5CLK dtTves. ireerrupl
runfier, supporl for ACTAJl ft SVSFAJL
a VHETW>M~. FDRd CDNFVT05" Ob/afard reaf-tUae qprrattnQ fyaxnn bemal
Multtproctaaliii Capabtllty ft VM£ F)mctioita are Secoctd to None
The \rtnvn ie\*«r of the CPU^SOi architecture b KiAOD, a 28] pin ASIC diet
enables rnufcp/rsxaiif^ via moaage passing and mailbox interrupt* JUA-OXZ abo
provide al the gfue fof»c needed by the host pjtwiw to drive the VMEbus and
perform die trexusby's most CDrTfxihenslw set of nuvter, stave anil axrtrol funcoons
These foafiina are eoaecoveJy labeled VME/PUJS Onboard performance b boosted
because die ASIC rajnimita> paie delay*
As a mufetoroarittns engbta, die CPU-30 bnparmenb meungr paMing modeled on
miftia*nptfte* and maJnhame Ideals, but uith VMDhs cnmpMUjilry M^vngr passing
pxTTTxib any prateaior to broadcast, ol any rime, stotus, d^a. Inierrupt or other mea
sago to a select but potenoafly forge set of reeeivert Because mesaage passing
enables real time cyitem oparaoon, A hadipiane pupulaled with sevvraJ VMLfUUS
CPCTs can handle a vast army of fundfceu wtthoul conlenbon or system crashes
The CPU.30 employs an cVbH «*4de, cVbyte deep FIFO mouage buffet and an 8>bii
wjde high prtoriry message reader The byle-wlde corJfotiraaan enables a scheme of
2S6 pooibfo messages Any VMZ master can deposit a messag* | n the buffer or
wgkrar. Up to 20 vtar>pa ff < u ufty e el btxarda can dmut*ran*asy receive a meMaga.
Mesagr racejpl sttmuaeao qukk aenon, tyofeatV on a predebstnlned basis For «■
•mpie, asTvtcetfl the beanupl caved by i ■■■ uy rau^l may bmxst an aforni. move
a robot arm, pafaaaae a block of data or send eeiflthar menage to another CPU, etc
The aeflcevtabcfkb baCaOy iceVeea p rogra<ton abfo.|t b easily tailored to epectftc ap-
paastfora. And. it happens more e*0by md with graektr certainty of qszsb than any
eehes archtbasura) approach that uaiipoo wtth Ihe QSE-1014 Indufbyctandard
VaCbwaa
Dti*ct«d Sofheare IrUeerupta via Mailboaaa
T) M VMDxo provides 7 hardware tnterrupl levee, thb nsstricb the number of active
eejorupt handkn to 7 at a dme. The CPUO0 «»9t>ents thb by providing 8 MataSon
(nterrupb which an corrwanr driven. Wtth 8 per board, a fufly popusavd backpiane
(21 CPUsI provklea 168 direcfed sorKware Wemipti for tasnettng the vvesrupt voasne
opeoed In axrejlex sysrema. The use of MatKrfus aftow* r*4fi e«*cubon through
quSca gprwalkm. of tntemrpts. and resub to Incredible berfcaaty
Corporate News
frjK^ USA Wayne FbcA« 14081 370-6300
CAEUNK BDOtaaovt t»1) 622-4400
BUM ■ Kahn P«
29MS WiKhaarrfiMt C*mpM CA^OW
Munv Shohil <40»i 3T974J4
FORCE VME^PLUS^ Technology
Chosen by CAE^LTSD for Navy Simulator
Largest Contract In FORCE History Also Marks Penetration of
VMEbus Into Minicomputer and Mainframe Territory
ORLANDO. FL, November SO. 1988 — Link Tacbcal SJroufotoon T>vutoa (LTSO).
Icicaard in Silver Spring. MD, (a subsidiary of CA£ Industries toaued In Toronto, Ontario T
Canada) and FORCE COMPUTERS (Campbell, CAJ have announced award of a major
rubamtrafl for computet ,ubsy*s<rmi for the U-S Navy's 14A12 Surfao* ASW
(A»d£v0maA>* Worfarel Trainer
CAELcik b the prime contractor for 1l»e production 14A12 Ilia iubaonoact *Ml\ FORCE
vAl result in me luppfy of very high perforrruvKe VMEbus based computer* thai provide
both •todem and tosrrurfor oaftoni bri an elaborate, eidremefy reoksbc re-creation of surface
ASW strategies and tacbes
Utider lemu of die ezsmrao. FORCE H tmplrmenfing me CAE Link design and dekvering
hjry integrated, funtbonai subsyrtrms
"Hie announxemeni was made on the eve of the annual l/TTSC Conference flnlener-
vtce/JndusTry Training Servtor QvJererseL Nek5 here Al Its exhibit hunk, CAE-Link wfl
demons9aie working student stations developed wrdi FORCE duriiig a devrlopmeni phase
FORCE abo plans to derrvuxrate working models of the VMEbus computer design used to
die program It wiD be die first public showing of these a&smely power* l J computen
The I4A12 ASW Trainer b an aggnsu've No^y program to build an ASW training
capftbikiy for the crews of surface ifript The program has an expected procurement Ue of
several years, during which the FORCE tubonuract could be worth more than II mJQton
Odrvery of die FORCE lus/dWe begins bi ea/ry 1989
FORCE Qioeen For Product Performance. Deal an Synergy
Bob Taggart, CAE-UnVs Vfoe President of MameDng, said 'die FORCE VMEbus based
solution b a »harp departure from Ihe <njnicr*nputen chat usuaay get die rod for thh t)rp*
of work VMEbus hardware wiO change die (ace of simulation because it's Inherent^ more
powerful, easy to dulribtde where t**4*d, consumes mua>i less power and lias much tower
sjfe cycle cod This epyra&h nsuks in modufor building blocks that can be used in
other bainers We chose FORCE because their Vuesi VME lechnobgy often much
tv^cr peifoTmanoe aiuf die abtlry to dstnbutt pwceaslng pAwer and muHiprrxming
cspabibty in a avnplex stmufobon eivoMng many etuderrb and inttruciorf Their nfal-
tttne hardVare b not only more powerful, it's abo less expensive *
Taggtrl abo Indicated that FORCE was chwen over »everaJ compe*10rs "becau»e
they joined our design team and provided the ongotog tupperi and Synergy thoi
hetoed us 1o win die Nev>r aontrao "
Many Weisbenj, FORCE Eaecuove Vkx PresJdent and General Manager, said "CAE
Link's leadership In ilmulabon continues because they were ^ilang to by something
new FORCE b using its latest design for the 14AI2 T?ieic boards emptoy the68O30
m^optexonsos In an exallng new archttecturv coDcd VMEVLUS thai provides
mainframe computer qualities such as meuagr passing and mollui inlmupes We
diink t>ils aontrad marks an era In simulation and training eeocurcmertt using off the
she** industry- standard sokittons "
tXning the yearlong development phase of the 14A12, FORCE provided hardware
and also prepared a realtime operebng system, pSOS
Trainees Will Enhance Readiness
The 14A12 Surfaee ASW Trainer has the potential to improve onmhoi reodinesi
Ihe Navy's plan cad for aonxf/ucban of several 14A12 Trainers Webberg said the use
of VME/PUJS distributed muftprtn^ng in the I4A12 dogp was being fooked fit
efoiefy as a candidate for other sbnulafton and boinlng prcejramj across the miirtan/
aervica s and cnmmeniai airknes
About Force Conaputara
The leading mdeperubnri desSgnct and rrueiidacturer of VMEbus pnsfui*. Forts b
entering its seventh yeas The company has cornpaned 23 consees/dve qua/ten of
pro/fobs* c^xeratlon Force b rwad^iarijred to Campbell. Caafomla wtdi culaidukrrci
to West Germany, France arid die United Kingdom Soles, service and product support
are provided on a worldwide basb
About CAE AJ »>
Link Tactical Stouifotksi Orvtaion b the leading producer of toarimg simulators for
Ihe US. Navel's turf ace. air and subsurfaae ASW applcsoons; surface team tacscs
Vatotog and ground C 2 ryewns for the US Army
54
February '69
68 Micro Journal
M1CK&NICS
Microcomputers - Hardware ind Sofi«*rt
GUHX* S»kvS«r>ic*ir»d Support
Dear Don,
A preview of friend Denis 1 6Q2 for Cfeesaber shews a
few typos, which readers may wish to correct, ihese
are :
P16, last para should read •Ul^at does S^ ABC' convey •
Diagram 85, row 3* col 10 should read 120, not 126,
P20, last para but one, should read *If they're equal,
we get directed to BL0O:-4a . ..•
P22, para 6, should read "»», friction as S <Jx ABC* .."
333« LYNN AVENUE.
ABBOTSFORD.
BRITISH COLUMBIA.
CANADA. V2SIE2
I've also noticed a sneaky one in the August issue,
{age 21r near top, should read »2 ml n2 ol. Ihe n2/nl
canto somehow got reversedl
I've been asked by a few readers about Manuals for
RBASIC. The price for the manual alone is US$25 ,
including postage for North America <plus $5
elsewhere), $22 of which will be applied against a
future purchase of EBAS1C
Don Williams,
68 Micro Journal,
5900 Cassandra anith Road,
Hixson, TN 37343
Sincerely,
u
R. Jones
President
C
Cl&SSijicdS Al SubmUied No Cuinmeci
D
MUSTANG-020 16Mhz with 68881. OS9 Professional Package & C $2500.
S+Systero with Cabinet. 20 Meg Hard Disk & 8" Disk Drive with DMAF3 Controller Board. 1X12 Terminal $2900,
HARD DISK 10 Megabyte Drive - Seagate Model #412 $275.
3-Dual 8 M drive enclosure with power supply. New in box. $125 each.
5-Siemens 8" Disk Drive, $100 each.
SWTPC S/09 with Motorola 128K RAM, 1-MPS2, 1 -Parallel Port, MP<09CFU Card- $490 complete.
Tom (615) 842-4600 M-F 9AM to 5PM EST
***
Motorola VME*10 with hi resolution monochrome monitor, hard disk, serial and parallel cards, Pascal ♦ assembler, linker and
documentation. Almost new $4500.
Two SSB-6809 systems with hard disks, miscellaneous software, Make Offer
Cadwel) Laboratories
909 N. Kellogg Street
Kennewtck,WA 99336
(509) 735-6431
BICC VERO MICROSYSTEMS
Flanders Road, Hedge End,
Southampton, Hampshire.
S03 3LG. ENGLAND
Tel: 0703 266300
BICC VERO MICROSYSTEMS provide a range of OS9/VME boards and
Development Systems all with full OS9 drivers. A number of development tools
such as Verolink are also available to simplify development of ROM based
target systems. In addition 'C bindings are available for Graphics, GPIB,
Analogue I/O and Parallel I/O.
68 rtfero Journal
February TO
65
B&R Industrial Automation Corp. is a manufacturer of programmable logic controllers
industrial computers, visualization and process control systems.
B&R offers the own hardware and software with easy communication to other systems.
One of the latest developments is a 0S9 based minicomputer system with floppy con-
troller on board, external harddisk (40 MB), optional memory extension board (RAM
and EPROM) and a high resolution graphic controller. This so-called MAESTRO-System
is available for 0S9 based software or can be used with B&R standard software and
offers direct access to digital and analog inputs and outputs.
For more information please contact:
B&R Industrial Automation Corp.
2165 West Park Court
Stone Mountain, GEORGIA 30087
Tel: 404 469 4617, Fax: 404 469 5460
H.C. ANDERSEN COMPUTER A/S License: OS9/6809 Level 1 (DRAGON Computer)
Th. Philipsensvej 21-23
DK-2770 Kastrup, Denmark
Telephone: 45 1 52 44 04
Telex: 31484 tmrcph
Development: OS9/68000 ATARI ST (Dr.Keil)
OS9/68000 ATARI ST (Cumana)
Drivers for t2->t5, cadscrn /term with
special fonts, TOS GATEWAY (PD)
SCULPTOR development
OS-9 for VME: Single Boards to Complete Systems
Mizar provides complete OS-9 solutions for the VMEbus.
Mizar's VME CPUs offer (he functions and performance your ap-
plication demands. Our single height (3U) VME processors are
uniquely configurable computing engines, Through Mizar's unique
MXbus™ expansion interface, standard and custom side mod-
ules can be added to basic processors to create double-height
(6U) boards tor specific applications, 3U CPU options include
68010, 66020, and 63030 microprocessors, up to one MB of
DRAM, serial I/O, real-time clock, and mailbox interrupt support.
Standard MXbus side modules include additional DRAM. SRAM,
and I/O.
Mizar's standard double- height (6U) processors provide
additional features such as a high-speed cache to enhance
68030 performance, floating, point coprocessor support, up to
four MB dual ported DRAM, VSB memory interface, Ethernet,
and SCSI.
Mizar also suppof ts OS-9 with completely configured OS
9 development systems and OS-9 application server systems.
For more information, call Mizar today
800-635-0200
MIZAR
1419 Dunn Drive • CarrolHon, TX 75006 • 214-446-2664
Pan Controls Limited specifically provides services In the field of Industrial automation. 0S9 Is
used for the majority of the high level computing work, and a number of software packages have been
developed for sale generally.
STIMULUS 1s a general purpose rule-based expert system programming language designed for easier and
more economic real-time processing for engineering control, simulation, monitoring, diagnosis, etc.
Since STIMULUS produces C source, 1t may be linked with other modules 1n C or Assembly language,
giving you the choice of C's I/O and Interrupt facilities.
PROFILE Is a symbol profiling tool for C or Assembly language programs that Increases programmer
efficiency. It provides a valuable and quick method of optimising large and small projects by
making a table of the time spent running each of your functions In your programme during a working
session. A quick look at this profile table shows you which functions are most used and help you to
concentrate your programming efforts on optimising these functions.
PAN UTILITIES Is a library of programs providing the major text-handling, file-handling and programmers
utilities Hhleh the QS9 operating system lacks.
February '89
66 fttioro Journal
PEP Modular Computers is one of the leading manufacturers of microcomputer boards an<J
systems for the VMEbus and HOC (Intelligent I/O Channel) in compact single height
format. /Founded in 1975 in Kaufbeuren, Germany, PEP is now established worldwith witf
subsidiaries in USA, France an Sweden. /Today PEP offers a broad range of VME and HOC
board level products, plus development systems, racks, backplanes, power supplies anc
standard operating systems./ PEP's target market segments are industrial control ap-
plications including machine control, process control, data acquisition and robotics
This year PEP introduced for example VSCSI, a SCSI interface module for the VMEbus,
VDAO, a combined A/0, D/A and digital I/O VME single height module, VMPM68KC-2, a
powerful 68020 VMEbus CPU in military temperature range, VLAN, a cost-effective VME
networking solution, VGPM a high performance graphics module based on the Hitachi
ACRTC63484. The company also introduced VIOXROM, an universal VME software interface
for a family of intelligent VME I/O modules./ Currently about 100 people are working
for PEP worldwide. For further information please contact: Germany 08341/81001
Scorpion Technologies Inc. features a line of Motorola 680X0 based co-processor
add-in boards for IBM PC/XT/AT and compatibles providing the most economical
development platform for 0S-9 engineers and programmers. This is the only known
implementation of Professional 0S-9 available on the PC platform and" provides the
unique feature of PC DOS concurrency. The Pro68 family is available with choice of
68000, 68010 or 68020 processors and a minimum of 1MB of memory (expandable to 4MB)
Two serial ports are available on the 68010 and 68020 versions with support for
16 users via intelligent serial 1/0 cards.
UNIVERSAL ETHERNET CONTROLLER BOARD
MPVME1054
* Intelligent Ethernet Slave Board running in any VME System
A TRUE MICROCOMPUTER BOARD SOLUTION WITH ETHERNET CAPABILITY
MPVME 1002 (16 Bit) MPVME1021 (32 Bit)
* Three communication packages under OS-9/68K
for all three Board available:
- DECNET/VME
- TCP/IP
- OS9-NET
Call for a complete documentation
SYSTEMFORSCHUNG , KSnigstr. 33a, 5300 Bonn 1 , W-Germany Tel. 0228/223151
XY2 Electronics, Inc , RR 12 f Box 322 Indianapolis, IN ^6236
(317) 335-2123 Contact: Gary Bannister
10-year old company manufacturers STD bus based industrial computer
systems and boaiis/ Suport 0S-9/6309 Level I ani 0s-9/63000
Professional Package.
Board level products ^include CPU-9A 2*1Hz 63309, and CPU-63.C3 10 3H*
63008. Both boards support STD bus for memory and 1/0 expansion.
Board level products, board sets, and complete systems available.
Memory, Floppy and hard &L*k controllers, analog 1/0, digital 1/0,
and cages available.
STD Bus systems offer a superior price/performance ration where
medium leeel performance in an industrial environment is required.
66 Mcro Journal February *9
NEW!
OmegaSoft Pascal for the 68020/68881
P20K is a Pascal package thai will generate code for all of the 68000
series processors, inckitf ng the $8881 coprocessor P20K will run on any
68000 series computer running the OS- 9/68000 (Microware) or POOS
(Eying Researen) operating systems with 512K or more free memory.
The base package (P20K-B) includes the Compiler, Relocatable Macro
AssembJer. Linking Loader, Screen Edtor, Pascal Snetf. Linkage Creator.
Host Debugger. Configuration manager. Installation program, and Patch
utility. A new reatixe in this compiler is the ability to either link in the parts
Of the runtime n&«<)6<j by the profpam. or to use trap handlers for runtime
access, to s* ive the runtime library between programs. Complete operating
system interface is also included using pascaJ procedures and functions.
Tne host debugger allows debugging at both the Pascal and assembly
language levels of programs that run on the host operating system, Price
for the base package is $575
The runtime source code option (P2GK-R) is available for Si00 and includes
source code for the operating system interface routines as well as pascal
runtime.
The UWity source option |P20K,S) i* avftiatte for If 75 and includes source
code for the Screen Edtor. Pascal Shell, Hoet O&ogo*. Patch utility, and
Configuration manager
The Target debugger option (P20K.T) is $225 and includes object and
source code This program allows Pascal level and assembly level
debugging In a system without operating system, by using a serial link
connected to the host computer
Prices do not include shipping charges. Master-Card and Visa accepted.
OmegaSoft is a registered trademark of Certified Software Corporation.
Gespac SA. a Chernm des Au/k, CH-1228,
Geneva/Plan- les-Ouaies, Switzerland
TEL 022-713400. TlX 429969
Elsoft AG* ZeJgweg 12. CH-5405 Baden-Ditt*).
Switzerland. TEL 056-833377. TLX 828275
RCS tfcrosystems Ltd. 141 U»bridge Road
Hampton W«. udOesex. Enrjand
TEL 01-9792204, TlX 6951470
Byte Studo Bo# ken. ButenwaJt 14. f> 4280 Sorkaa
West Germany
TEL 02661-2147. TLX 813343
Eltec Etektronik GmbH. Gafciao- Gafiiei- Sir a6e.
6500 Mainz 42. Postfach 65. West Germany
1EL 06131-50031. TLX 4W7273
PEP ElektromW System e GmbH, Am Ktosterwald 4
0-6950 Kaufbeuren. West Germany
TEL 06341 8974. TLX 541233
CERTIFIED
SORTWARE
CORPORATION
P.O. BOX 70, RANDOLPH, VT 05060 USA
TELEPHONE: (802) 728-4062
FAX: (802) 728-4126
KQfflfMMQSQSzMiMQMniUMzU®I^^
I I J- V /SK-IIOS VMS-IIOS
TM
Utilities
For 68XXX and CoCo* OS-9- Systems
Now READ - WRITE - DIR - DUMP - EXPLORE
FLEX, SK-DOS & MS-DOS Disk
These Utilities come with a rich set of options allowing the
transfer of text type files from/to FLEX & MS-DOS disks.
*CoCo systems require the D.P. Johnson SDISK utilities and OS-9 and two
drives of which one must be a "host" floppy.
CoCo Version: $69.95 68XXX Version $99.95
P
S.E. Media
615 842-6809
PO Box 849, HixsonJN 37343
MC/Visa
^jofgraMOjgigrsrafajBMgMg^^
53
February 89
SB Mcro Journal
r
SK*DOS768K
Read the fine print to see what's in SK*DOS/68K:
D Full DOS documentation plus on-line help D Multiple directories
D User-installable device drivers O Install up to 8 different I/O
devices □ Keyboard type-ahead D Print-screen □ Virtual (RAM)
disk D Disk cache □ Up to 10 drives □ 5 K" or 3tt" floppy drives □
Hard drives to 64 megabytes each D I/O redirection to drives or I/O
D Time/date stamping of files O File or disk write protect (even
Hard disk) □ Batch files D Support for 68000, 68010. 68020 □
Monochrome or color video board support D Read and write MS-
DOS disk files □ 6809 Emulator □ Powerful utilities such as copy-by-
date, undelete, show differences between files, prompted delete, text
file browse, and more - all included D Simple Basic included D Fast
assembler included D Line editor included D User support via
newsletter and BBS D Available software: C compiler, full Basic,
screen editois, disassemblers, cross-assemblers, spelling checker, text
formatter, music editor, hard disk manager, ROM-based debugger,
modem communications programs, etc. More compilers coming. D
(Some features may not be implemented in all hardware manufac-
turers 1 implementations.)
Individual copies or SK*DOS/68K are $140; less in
quantity or when bundled with hardware. Send
k^for our 6809 / 68K hardware and software
catalog. Also available as part of our
hardware/software educational course.
Software Systems Corp,
P. O. Box 209J
MtKisco, NY 10549
(914)241-0287
BBS (914) 241-3307 Fax (914) 241-8607
Apple
Macintosh-
B Users
Save over a $KOOG.OO
on PostScript
Laser Printers!
Faster - Finer Quality
than the original Apple
LaserWriter!
New & Demos
C ar t r idges-new-rebu ilts
-colors-
*in Chattanooga Calif
615 842.4600
(IMS-Authorize*)
Data-Comp Division
n "MIT . n rtoab it Q m*i imar
n ' '^W ^t...HUIBE — •
11tHM» Hnniiiraa
SOFTWARE
68000 C CROSS-COMPILER
$100 . SKDOSMSOOSWtXJtENIX {OBJECT ONLY)
Afccyo KftR C Uagva^r. \atrmta 68000 a
■■Etude* 68010 oun-oito^lef: hbrwtes prwnAd Tor SKDO&. IM ttny be modified.
CROSS-ASSEMBLERS WITH MACRO CAFAHILITIES
EACH E30Fl.EX,OS9.V/SfFU-XMSDOS.UNtXJKf>OS,XENIX JfStOO AUJS100
Svctfr •«>«. M02* «*»/! I, 480* r «»05. 6809. Z8. ZOO. 8W*. 8051. DOSS. 680101 )»••
Modular cnm-MBcn&trttnQ. w^ tadAmload uliuuc* Scuflzi tor •dd>u«\aJ 50 each. S 1 00 lor
J. SWOtbrall
CMODEM TELECOMMUNICATIONS PROGRAM
J}9$-MSDOS i SKOOS.VNtXflKX0S9X6NiX.VNtrtJ : :X QBlECT-ONLT: EACH 150
MauHlnvrti wiih i
MODCM7. XON-XQfF, «c.
SUPER SLEUTH DISASSEMBLERS
EACH S9f*Fl£X SW-OS9 UOQ.VNlFtfX OBJhXT-ONVf: EACH $50 Fl£X,OS9.COCO
lm»»CD«d} |<a0«£ mace on dtA %*h label*, mcajoc* utf . douffy oftua*
Specify AWH>.1 J.l.^.V/nVU «nim iw Z*0VKM0J *e*i*on
COCO DOS iv«*tob*c ta 6800.I.3.J.5 J.W50I tervan (not ZSV8ffl>,5) oofy
4SOI0 wmm iJO#KtKX.OS«,LINIFLKX.MSOOS.tJMX,SKOOS.X j;NJX
DEBUGGING SIMULATORS FOR POPULAR 8-BIT CPUS
EACH VyFlEX Jftt-059 UO-UMFUSX 00$VC7^O^Lf: RACH tS^COCO FLEX, COCO 0&9
Uito^tWy mnwmmt pvxmw*. nxhato* deoonnEiy foRnaOmt, bunr
Specif tor 68WUMVJW5. 6502.6809 OS9 only, Z80 FLEX only
ASSEMBLER CODE TRANSLATORS FOR 6502, 6800/1, 6809
6302 to 6909 MFtJiX ttS-OSf SM UStFLEX
tOQOit to W09 6\ U09 to po,.imL S50-FLEX X7S-OS9 Onfy ftO-UMFMX
FULLSCREEN XBASIC PROGRAMS witfa rpnar e«i»irol
AVAILABLE FOR FLEX, l/MFLEX. AND MSDOS
Ouptcy Gmosfc*/ Doca/trJUf
Maling Lm SjMefti
Inventory W ith MKf*
TthuU fUn Tpna^hMt
DISK AND XBASIC UTILITY PROGRAM LIBRARY
$i9-ri£X tiO-VNIFL K XfMSOOS
S3Q wtwaooe.
Si) »i«hou
S100 ».'wunr.
SS0 without
SIQQw/wurce,
1M without
3100 Whnfm,
ISO without
v. Jii Ait «ut, mi uinxwry nwmiNi master oak*, do dot wru. <rsi|ta3vc mc « t)|
BASIC ptofjsn.izef 6ASXT («f»».*- mm -FLEX ycrgxmtxJudc <wd ctj rq i *i*i- r cdy
PROFESSIONAL SERVICES
FOR THK COMrtTIKd COMMUNITY
CUSTOMIZED PROGRAMMING
We will cuaionbe joy of the («n/«i« deacrihod in ihi* a^vou^f^t or u> our hnxhwc for
^iec4aUced nioiM uie or » covw new (moot the chvfc tor »ach cu4anii«alMm i^mdi
upon (he amrteaHJUy of the madtrk^kw
CONTRACT PROGRAMMING
We wtlt cr«**e new fPt&iflu or otodiTy ezutitf jjrvjrmaj or* » cooo«rt back, a temu wo h*i»o
px7T«k<j f ix tnrr nvoqyycw; (hewmpucrvoo w*khwt have perf orme d coniract Fogrw»n»ag
bxlooo (nonpcfvls models of nm/nmn, tnciodinj IBM. B<rm«tic Umvjc. Hac^B. roon
poHv «oooeb of oiPihitopuUTv tocladinj pec. IBM, DO. KP. aTAT. «nd mosi popuiu
• of aKnBDpttcit. ^actedm» 66tXVI. 6g09> 2*0, 6502, 680*0. «swf mod -ppropjiue
» oxl opp*«"< rydan*. on «rtte*M rwt^o w tttt bom Uffc Mkiummiiftiatkiu to
Rojkhdowl p«4 lo fh r^ tho chi» for omO*» p n^ngn r nb g u <wually by the hour or by the it,
CONSULTING
Wc offer • wide m»fc of buiincs a
tnfabt. md 6a»g\ on %ny myk tvImcC to
toad «|>o» pmc »•>«*, «no expenaa.
thcchATse tor
itnir*, odrtce,
i» nomulh;
Computer Systems Consultants Inc.
flirt «• i(Ma nulDf, AhIh, i
wJi^la |Mbw J mm* mx*r*
1454 1
C«»)«V 0«rg* joaw
(40*> 481-4 J70 ♦ (404)483 17) t
<nu |i*t Bm Wm mX OS. 4hA um Ul rff
. ., d,^ VISA i>d MAITUt CAMIl wummmt *Ai iii> mm* ti* M m Gh} mm **
■I I^Wn "■, -— . CHfl HiiffM COCR Th^ HUVM Huno^l, XKI>TIS Siwt
68 rVfcro Journal
February 89
59
Clearbrook Software Group (604)853-9 n 8
CSG IMS Is THE full featured relation-
al database manager for OS9/OSK
The comprehensive structured ap-
plication language and B+Tree Index
structures make CSG IMS the Ideal
tool for file-Intensive applications.
CSG IMS fof CoCo2/3 OS9 LI/2 (sJngla user) $169 95
CSG IMS fof OS9 12 or 68000(multi usar) $495.00
CSG IMS demo with manual $30
MSF - MSDot File Manager for CoCo 3/OS9 Level 2
allows you to use MSDos disks directly under OS9-
Requires CoCo 3, OS9 U, SDISK3 driver $45.00
SERINA - System Mode Debugger for OS 9 12
allows you to trace execution of any system module,
set break points, assemble and disassemble code and
examine and change memory.
Requires CoCo3 or Gimix II, OS9 12 & 80 coh terminal $139.00
ERINA - Symbolic Uter Mode Debugger for OS9
lets you find bugs by displaying the machine state and
Instuctlons being executed. Set break points, change
memory, assemble and disassemble code.
Requires 80 column display, OS9 L1/2 $69.00
Shipping: N, America - $5, Overseas - $10
Clearbrook Software Group P.O. Box 6000-499, Sumas, WA 98295
039 If lrad«fnarfc of Mkiowr«r» Syt^mi Corp , MSDoa h a twtomMJt oT MtefQMfi Cofp.
SPECIAL
ATARI™
&
OS-9™
NOW!
If you have either the
Atari 520 or 1040 -
you can take
advantage of the
"bargain of a lifetime"
OS-9 68K and BASIC
all for the low, low price of:
$150.00
Call or Write
S.E. AAodio
5900 CTossandra Smith Rd.
Hlxson. TNI 37343
615 &42-4<bO!
~>
ATARI & AMIGA
CALL
As most of you know, we are vef y sensitive to your
wishes, as concerns the contents of these pages. One of
the things that many of you have repeatedly written or
called a bout is coverage fonhe Atari & Amiga™ series of
68000 computers.
Actually we haven't been too keen on those systems
due to a lack of serious softwaie. They were mainly
expensive "game-toy" systems. However, recently we are
seeing more and more honest-to-goodness serious soft*
wa re for the Atari & Amiga machines. That makes a differ-
ence. I feel that we are ready to start some serious looking
into a section for the Atari & Amiga computers. Especially
so since OS-9 is now running on the Atari (review copy on
the way for evaluation and report to you) and rumored for
the Amiga. Many of you are doing all kinds of interesting
things on these systems. By sharing we all benefit.
This I must stress - Input /torn you on the Atari
& Amiga. As most of you are aware, we are a
"contributor supported" magazine. That means
that YOU have to do your part. Which Is the way it
has been for over 10 years. We need articles, tech-
nical, reviews of hardware and software, pro-
gramming (all languages) and the many other fac-
ets of support that we have pursued for these many
years. Also I will need several to volunteer to do
regular columns on the Atari & Amiga systems.
Without constant input we can't make it flyl So, if
you do your part, we oerminrv will do ours. How
about it, drop me a line or give me a phone call and
I will get additional Information right back to you.
We need your input and support if this is to succeed)
$0
February '69
68 Micro Journal
THE 6800-6809 BOOKS
..HEAR ye. H£AR
OS-9"
User Notes
By: Peter Dibble
The publishers of 68' Kitro Journal are proud co make
available the publication of Peter Dlbblea
OS9 USI1 POTTS
Information for the BICDMER to the PIO>
■egular or CoCo OS9
Dalng 059
HELP, HINTS, PR08LEMS, REVIEWS, SUGGESTIONS, COMPLAINTS,
0S9 STANDARDS, Generating a New Bootstrap, Building a
new System Disk, 0S9 Users Group, etc.
Program Interfacing to 059
DEVICE DESCRIPTORS, DIRECTORIES, "FORKS - , PROTECTION,
"SUSPEND STATE", "MPES", "INPUT/OUTPl'T SYSTEM", etc.
Programming Language!
Assembly LanRuaRe ProRrams and Interfacing; Baaic09, C,
Pascal, and Cobol reviews, programs, and uses; etc*
Dleka Include
So typing all the Source Uatlnga in. Source Code and,
where applicable, aaaembled or compiled Operating
Programs. The Source and the Discussions In the
Columns can be uaed m aa ia~* or as a "Starting Point"
for developlnR your OHM more powerful Programs.
Programa aometlmea uae multiple Languagea such as a
short Assembly Language Routine for reading a
Directory, which Is then "piped" to a Basic09 Routine
for output formstting, etc.
BOOK $9.95
Typeset — w/ Source UatinRs
(3-Kole Punched; 8 x II)
Delinte Bloder S5.50
AH Source Listings on Disk
1-8" SS, SD Disk SI*. 95
2-5" SS, DD Dlaka $24.95
FLEX™
USER NOTES
By: Ronald Anderson
The publishers of 68 HICRO JOURNAL are proud to
make available the publication of Ron Anderaon'a FLEI
OSKV NOTES, In book form. Thia popular monthly column
has teen a regular feature in 68' HICRO JOURNAL SINCE
1979. tt has earned the respect of thousanda of
68 HICRO JOURNAL readers over the years* In fact,
n's column has been described aa the 'Bible' for 68XX
users, by some of the world's lesdlnR microprocessor
professionals. The most needed snd popular 68XX book
available. Over Che years Ron's column hss been one of
the most populsr In 68 MICRO JOURNAL. And of course
68 MICRO JOURNAL Is the most populsr 68XX magazine
published.
Listed below are s few of the TUT files Included In the
book snd on diskette.
All TEXT files m the t>ook are on the disks.
LOGO C1 File load program to offset memory — ASM PC
MEM0V6 CI Memory move program — ASM PIC
DUMP CI Pnnter dump program — uses LOGO — ASM PIC
SUBTEST C1 Simutstion of 6800 code 1o 6809. show differences — ASM
TERMEM C2 Modem input to disk {or other port input to disk) — ASM
M C2 Output a file to modem tor another pon) — ASM
PRINT C3 Parallel (enhanced) printer driver — ASM
M00EMC2 TTL output to CRT and modem (or other port) — ASM
SCIPKG C1 Scientific math routines — PASCAL
U C4 Mmi-moniior t disk resident, many useM functions — ASM
PRINT C4 Parallel pnnter driver, without PPL AG — ASM
SETC5 Set pnnter modes — ASM
SETBASi C5 Set printer modes — A-BASIC
NOTE: .C1,.CZ, etc. -Chapter 1, Chapter 2, etc.
**Over 30 TEXT files included is ASM (aaaerfbler)-PASCAL-
P1C (position Independent code) TSC BASIC-C, etc.
Book only: $7.95 + $2.50 S/H
With disk: 5T $20.90 + $2.50 S/H
With disk: 8" $22.90 + $2,50 S/H
Shipping A Handling $y 30 pa Book. $2 30 per Disk set
Foreign Orders AddS4.50 Surface Mail
or $7.00 Air Mail
If piying by check - Please allow 4*6 weeks delivery
♦ AH Currency in US. Dalian
Continually Updated In 68 Micro Journal Monthly
Computer Publishing Inc.
5900 Cassandra Smith Rd.
Hixson, TN 37343
bg mj
i
"FLEX la a trademark of Technical Syatema Conaultants
"0S9 is a trademark of Microware and Motorola
*68' Micro Journal la a trademark of Computer Publtahlng Inc.
(615)842-4601
Telex 5106006630
66 Mao Journal
February '80
61
(f-
-s
!!! Subscribe Now !!!
68 MICRO JOURNAL
OK, PLEASE ENTER MY SUBSCRIPTION
Bill My : Mastercard □ VISA □
Exp, Date
Card#_
For 1 Year
2 Years
3 Yeais
Enclosed: $_
Name
Street
City_
State
Zip,
Country_
My Computer Is:
Subscription Rates
U.S.A.: 1 Year $24.50, 2 Years $42.50, 3 Years $64.50
♦Foreign Surface: Add $12.00 per Year to USA Price.
♦Foreign Airmail: Add $48.00 per Year to USA Price.
♦Canada & Mexico: Add $9.50 per Year to USA Price.
♦U.S. Currency Cash or Check Drawn on a USA Bank !
68 Micro Journal
5900Cassa dra Smith Rd
POB 849
Hixson f TN 37343
B
^
Telephone 615 842-4600
Telex 510 600-6630
Reader Service Disks
Disk* 1 Fitesea, Minim, MiniCopy,Minifms. ••Lifetime, ••Poetiy,
••Foodlist. •'Diet
Disk- 2 Diskcdit w/ insi.& fixes. Prime, •Prmod, ••Snoopy,
••Football. ••HexpBwn, ## Lifeiime.
Disk- 3 Cbug09. Seel, Scc2, Find, Table2. Iniexl. Disk-exp.
♦Disk save.
Disk- 4 Mailing Program, •Finddai, •Change, •Tesidisk.
Disk- 5 •DISKFDC 1, •DISKFDC 2, ••LETIBR. ••LOVBSIGN,
••BLACKJAK, ••BOWLING.
Disk- 6 "Purchase Order, Index (Disk file indx).
Disk- 7 Linking Loader, Rload, llaikness.
Disk- 8 Cnesi, Unpher (May 82).
Disk- 9 Daiecopy. Diskfix9 (Aug 62).
Disk-10 Home Accounting (July 82).
Disk* 1 1 Dissembler (June 84).
Disk. 12 Modem68 (May 84).
Disk- 13 •Initmf68. Te«imf68.*aeanup, # Dskalign,Help.Daie.TxL
Disk- 14 •Init, *Tesi, •Terminal, •Find, •Diskcdit, Inii Lib,
Disk. I 5 Modcm9 + Updates (Dae. 84 Gilchrist) to Modcm9
(April 84 Commo).
Disk. 16 Copy.Txt. Copy. Doc, Cat/Tat. Cat.Doc.
Disk- 17 Maidi Utility. RATBAS. A Basic Preprocessor.
Dlsk-18 ParseMod, SizcCmd (Sept 85 Armsirong).CMDOODE,
CMDTxt (SepL 85 Spray),
Disk- 19 Clock, Dale, Copy, Cat, PDELAsm A Doc., Errors.Sys,
Do, Log.Asm A Doc.
Disk-20 UNDC Like Tods (July & Sept. 85 Taylor A. Gildiria).
Dragon.C. Grcp.C. LS.C. FDUMP.C.
i Disk -21 Utilities & Games - Dale, Life, Madness, Touch, Goblin,
Siarshot. & 15 more.
Disk-22 Read CPM * Non FLEX Disks. Ftbsct May 1984.
Disk. 23 ISAM, Indexed Sequential file Accessing Methods,
Condon Nov. 1985. Extensible Table Driven. Language
Recognition Utility, Anderson March 1986,
Disk*24 68' Micro Journal Index of Articles & Bit Bucket Items
from 1979 - 1985. John Current.
Disk-25 KERM1T for FLEX derived froin the UNUC ver. Burg
Feb. 1986. (2)-5 M Disks or (l)-8* Disk,
Disk 26 Compact* UniBoard review, code & diagram, Burlison
March '86.
Disk-27 ROTABIT.1XT. SUMSTEST.TXT, CONDATA/IXT.
BADMEN.TXT.
Disk-28 CT*82 Emulator, bit mapped.
Disk-29 ••Siar Trek
Disk 30 Simple Winchester. Dec.86 Green,
DiskOl ••• Read/Whie MS/PC-DOS (SK*DOS)
Disk-32 Heir-UNDC Type upgrade - 68MJ 2/87
Disk.33 Build the GT~4 Teiminal - 68MJ 1 1/87 Condon.
Disk-34 FLEX 6809 Diagnostics. Disk Drive Test. ROM Test,
RAM Test -68MJ 4/88 Koipi.
NOTE:
This is a reader service ON LYJ No Warranty is offered or implied, they are
as received by 68' Micro Journal, and arc for reader convenience ONLY
(some MAY include fixes or patches). Also 6800 and 6809 programs arc
mixed, as each is fairly simple (mostly) to converi to the other. Software is
available to cross -assemble all.
• Denotes 6800 - •• Denotes BASIC
*** Dcnoics 68000 - 6809 no indicator.
8" disk $19.50
5" disk $16.95
Shipping & Handling -U.S.A. Add: - $3 JO
Overseas add: $4.50 Surface - $7.00 Airmail
68 MICRO JOURNAL
5900 Cassandra Smith Rd.
Hixson, TN 37343
(615)842-4600 - Telex 510 600-6630
62
February *89
68 Mcro Journal
The Only 6809 BASIC to Binary Compiler for OS-9
FLEX or SK*D()S
Even runs on the 68XXX SK*D()S Systems*
,.. ........ ... N
i Hundreds Sold at
i Suggested Retail:
i
$100.00
■
• 6809 - OS-9™ users can now transfer their Fl£X™
Extended BASIC (XBASIC) source files to OS-9, com-
pile with the OS-9 version and run them as any other
OS-9 binary "CMO" program. Much faster than BASIC
programs.
• 6809 - FLEX users can compiler their BASIC source
files to a regular FLEX ",CMD* file. Much faster execu-
tion.
• 68XXX - SK*DOS 1M users running on 68XXX systems
(such as the Mustang-08/A) can continue to execute
their 6809 FLEX BASIC and compiled programs while
getting things potted over to the 68XXX. SK'DOS
allows 6809 programs to run in emulation mode. This is
the only system we know of that will run both 6809 &
68XXX binary files.
K-BASIC is a true compiler. Compiing BASIC 6609 pro-
grams to binary command type programs. The savings
in RAM needed and the increased speed of binary
execution makes this a must for the serious user. And
the price is now RIGHT!
Don't get caught up in the "Learn a New Lan-
guage" syndrome • Write Your Program In
BASIC, Debug it In BASIC and Then Compile
It to a .CMD Binary File.
For a LIMITED time
save over 65%. ..
This sale will not be
repeated after it's
over! *
t m ......... ... N
SALE SPECIAL:
$69.95
Thank-You-Sale
OnCy from:
c
S.E. Media
p
i
5900 Cassandra Smith RcL
Hlxson, To 37343
Tetephone 615 842*6609
Tfetex 510 6OV6630
A Division ol Computer Publishing Inc.
Over 1,200 Titles - 6aav6609^8OD
* K-8ASC wO) fin infer 68XXX 9C*DGS w\ ontMk* mode far fe 6809.
Plioe wbfta 10 dm^z wchou nrfke.
68 Micro Journal
February '69
63
PT-68000 SINGLE BOARD COMPUTER
The PT68K2 is Available in a Variety of Formats
From Basic Kits to Completely Assembled Systems
BASIC KIT (8 MHZ) - Board. 66O0O,
HUMBUG MONITOR + BASIC in ROM,
4K STATIC RAM, 2 SERIAL PORTS, all
Components $200
PACKAGE DEAL Complete Kit with
Board 68000 10 MHZ. SK'OOS, 512K
RAM. and all Necessary Parts $575
ASSEMBLED BOARD (12 MHZ)
Completely Tested, 1024K RAM,
FLOPPY CONTROLLER PIA, SK'OOS
$899
ASSEMBLED SYSTEM - 10 MHZ
BOARD, CABINET POWER SUPPLY,
MONITOR ♦ KEYBOARD, 60 TRACK
FLOPPY DRIVE, CABLES $1299
For A 20 MEG DRIVE, CONTROLLER
and CABLES Add $295
PROFESSIONAL OS9
STAR.K SOFTWARE SYSTEMS CORP.
$500
FEATURES
• MC68000 Processor, 8 MHZ Clock (optional
10,12,5 MHZ)
• 51 2K or 1024K of DRAM (no wait states)
• 4K of SPAM (6116)
• 32K,64K or 12BK of EPROM
■ Four RS-232 Serial Porte
• Floppy disk controller will control up to four
5 1/4*, 40 or 60 track.
• Clock with on- board battery.
• 2 - B bit Parallel Ports
• Board can be mounted in an IBM type PC/
XT cabinet and has a power connector to
match the IBM type power supply.
• Expansion ports 6 IBM PC/XT compatible
WO ports The HUMBUG* monitor supports
monochrome anoVor color adaptor cards
and Western Digital Winchester interface
cards.
PERIPHERAL TECHNOLOGY
1710 Cumberland Point Dr., Suite 8
Marietta, Georgia 30067
404/984-0742
VISA/MASTERCARD/CHECK/C.O.D.
Send For Catalogue
For Complete Information On All Products
/r
DATA-COMP
SPECIAL
Heavy Duty Power Supplies
For A MmJM
prbes are
time our HEAVY DOTY SWTTCHNG POWER SUPPLY. These m BRAND NEW unto. Nble that these
than 1/4 the normal price lor these high quaftty unto.
Make: 6csd*rt
Six: 10 J x 5 x 15 inches
Including heavy manning track** and heasxnk.
Raring: in 110/220 volts ac (strip change) Out; 130 wads
Output +5v - 10 amjB
+l2v-4.0 amjB
+12v-2.0amjB
-l2v-0.5amp>
Mating Connect*: Terminal strip
Reaction: Automatic short circuil recovery
SPECIAL: $59.95 each
2 or more $49.95 each
Add: J7J0«ch S/H
> r
K
Make: Boschert
She: 10.75 x &2 x 225 inches
Rating: 110/220 ac (strap change) Out: 81 watts
Oxiptic; +5v - 8.0 an^B
+12v - 24 amps
+12v-24amps
+12v-2.1 amps
-12v - 0.4 amjB
Mating Groans: Molex
Load Reaction: Aussmazic short circuit recovery
SPECIAL: $49.95 each
2 or mone $3935 each
Ad* ST 30 S/H each
J ^
^=
5900
Smith Bet, tfeaur\ Trv 37343 Totophooe 615 6424600
Telex 510 «O«30
64
February '89
68 Micro Journal
Now Offering "FLEX'* (2 Versions)
AND 'STAR- DOS PLUS + "
For Ordering C*ll
(615)842-4600
FROM - DATA-COMP, C.P.I.
A Family of 100% 68XX Support Facilities
The Folks u/ho FIRST Put FLEX*
The CoCo
on
TSC Editor
RtjtSOOO
NOW $35.00
DOS PLUS 4
• Functions Same as FLEX
• Reads - writes FLEX Disk*
• Run FLEX Programs
• Just type: Run "STAR-DOS''
• Over 300 utilities & programs
to choose from.
PLUS
ALL VERSIONS OF FLEX & STAR DOS
+ Read-Write-Dir RS Disk
+ Run RS Basic from Both
+ More Free Utlities
INCLUDE
+ External Terminal Program
+ Test Disk Program
+ Disk Examine & Repair Program
+ Memoiy Examine Program
+ Many Many More!!!
TSC Assembler
fUfttOOO
NOW $3500
Cora Disk Dnvp Susleuisl
2 TH1NLINE OOUILB SIDED DOUILE DENSITY DISK DRIVES
SYSTKH VlTN PDtJEI SWPLV .CAlINfcT, DISl OllVE CARLE. J4M
NEW DISK CONTROLLER JPO-CP VJTfi J-DOS .US-DOS OPERATING
SYSTEMS. $4*9.95
Spidfy What CONTROLLER You W#nt JAM, or tADIO IHACX
THINLINE DOUIt^ SIDED
DOUILE DENSITY 40 TRACKS
1
Verbatim Diskettes
Sinftle Sldtd Double Deoilty
Daubl* Sided Doubl* Deotlty
Cauli oilers
J4N JPO-CP WITN J-DOS
WITH J-OOS, RS-DOS
RADIO SNACK J, I
RADIO SHACK Dlik CONTROLLER 1.1
Disk Dtive Cables
Cflbl* for One Drive
Cable for Two Drive*
$179.9*
$ 14.00
* 14.00
$139.95
$159.95
$114.95
3134.93
S 19.93
S 24.93
MK VPCRADt
POR C.D.E.P, AMD COCO 11
RADIO SHACK BASIC 1.2
RADIO SHACK DISK IAS1C 1.1
DISK OltVE CAR I NET PCJ1 A
SINGLE DRIVE
DISK DRIVE CABINET POR TWO
TK INLINE DRIVES
niVTCRJ
EPSOM U-RO
EPSON MX-70
EPSOM KX-lOO
acojmmue* not ipso*
6 J 46 2K SEllAL BOARD
6 J 49 32K EXPAND TO J 26K
EPSON MX -AX- HO KI150NS
EPSON LX-80 Rl IRONS
TEACrOR UNITS POR LX-80
CARLES 4 •THEN INTERSACKS
CALL POR PRICING
$ 29.95
$ 24.93
I 24.93
I 49.93
$ 49.95
4219.95
IU3.95
$495.95
$ R9.95
$149.95
$ 7.95
I 5.93
I 39.95
DATA-COMP
5900 Cassandra Smith Rd
HiKson. TN 37343
|e»
SHIPPIN6
USA ADD 211
FOREIGN ADD 5»
MIH. %2$Q
(615)842-4600
f Of Ofdvftng
Telex 5106006630
S
An Ace of a System in Spades! The New
MUSTANG-08/A
Now with 4 serial port* standanl ft speed Increase to 12 Mhx CPU + on board battery
backup and include* the PROFESSIONAL 06-9 package - Including the $500.00 OS9
C coxnpUerl This offer wont last ftn e vei !
NOT 128K, NOT 512K
FULL 768K No Wait RAM
The MUSTANG4B™ system took every hand hum al
other 68006 syaems we tested running OS-9 68KJ
The MU5TANO06 fcndudes OS^68K^ and/be Paler
Stark's SKDOS™ SKDOS Is a single user, slngte testis
system that takee up where *FLEX™ Islt off. SKDQS is
Now even faster!
with 12 Mhz CPU
C Campfk tin** O&S 68K Hwd Disk ^\
ftlSTANGOB 81/taCPU Omfcl 32ew
Other popuHr O008 system
MUSTANWfiO
mh 05 sec
0mh-2tssc
=^
1 adDaty a 68XXX R£X type eyslem f/NJb* a
73C product;
WftJMliT, sTIIlll r-a
p*Jjger\pn jftS
rteVi. AJTk Toffluiar 6«
A on Jsfc lO Fact ta]
ajL* KI^Ep /5£
System Inchidee OS-9 68K or
SK-DOS - Your Choice
Specifications:
CPU MCG800B
12Mtt
RAM 76SK
2SEK Ch*e
No Wat Stake
PORTS 4-RS232
MCfiBffil QUART
2-8bftPvay
MCrSI PtA
aOCK MK48T02
Real This dock Bst BAJ
EPROM 18K 32K or B4K
Sekriafala
aOPPY WD1772
51M0mw
HMD DtSK kU&* Port
VYD1002 Bend
25 Megabyte
Hard Disk System
JV Now more serial ports - faster CPU 1
Battery B/U - and $850.00 OS-9 Profes- 1
- slonal with C compiler included! j ap^, (fa, & p^m papam) to b» utiiiaod Wha* is not
avafette to the usor is required and reserved for ** system
A RAM disk of 480K can ba aasly ojrtigured. laavng 288K
$2,398.90
Complete with PROFESSIONAL OS9
includes the $500.00 C compiler, PC
style cabinet, heavy duty power supply,
5 DDDS SO track floppy, 25 MegByte
^ Hard Disk - Ready to Run i
UheXe other 68008 sySterra there are several Bjjnflcarrt
dflarencm The MUSTANG-08 is a full 12 fcfagahertz system. The
RAM uses NO wal states, this means tul bore MUSTANG type
performance.
Abo, atowrg for addressable HDM4>ROM the RAM b the
maximum allowed tor a 68008. The 68008 can only address a
total of 1 Megabytes of RAM. The design ata*s al the RAM
$400.00
See Mustang-02 Ad - page 5
for trade-n detals
MUSTANG-08
LOOK
Seconds
ijunp
32 ba Repaid
Eroegir la%
:... 18.0... 9.0
>. *■ • *W*"» <<S< j
r tnt fc v
register long I;
lor (txO; I < 899999; *4l);
free lor prqjBrr>*y*am RAM apace. The RAM DISK can be
configured to any sbe your app i ^y i requres (system must
have 128K In addition to Is other requlremeiits) Leaving the
remainder of the orjanarf 768K for program use. Suffoarf
source included (6faw* sto)
FlfXma
MUSTAHO-Oitai*
Data-Comp Division
r X^teT X A Decade of Quality Service'
V^ System WaldWUe
Computer Publishing, Inc. 5900 Cas&tfa Sntfi Road
Telephone 615 842-4601 -Telex 510 KXV6630 Hbtsoo, Tn 37343
* Thcw vrth SWJPC r+dan*y RiX S - - Col for apectel hto.